Tkinter 画布图像适用于 Windows 但不适用于 OSX

Posted

技术标签:

【中文标题】Tkinter 画布图像适用于 Windows 但不适用于 OSX【英文标题】:Tkinter canvas image works on windows but not OSX 【发布时间】:2019-07-27 22:58:30 【问题描述】:

有点初学者所以请原谅我的错误。

我创建了一个超级简单的 tk 脚本,它创建一个画布并在其上显示图像。它适用于 Windows,但不适用于 OSX,唯一的区别是文件路径。

from tkinter import *
from PIL import ImageTk, Image
root = Tk()

canv = Canvas(root, width=80, height=80, bg='white')
canv.pack(expand=YES, fill=BOTH)

img = ImageTk.PhotoImage(Image.open(r"C:\project\TechArt\tools\illustrator_label_browser\thumbnails\rachel_vector_lines.png"))  # PIL solution
canv.create_image(20, 20, anchor=NW, image=img)

mainloop()

OSX 莫哈韦:

from tkinter import *
from PIL import ImageTk, Image
root = Tk()

canv = Canvas(root, width=80, height=80, bg=‘white’)
canv.pack(expand=YES, fill=BOTH)

img = ImageTk.PhotoImage(Image.open(“/Users/jonathansundberg/Techart/tools/illustrator_label_browser/thumbnails/rachel_vector_lines.png”))  # PIL solution
canv.create_image(20, 20, anchor=NW, image=img)

mainloop()

我做错了什么?

【问题讨论】:

您在 OSX 中收到的错误信息是什么? 无,运行正常但图片不显示 【参考方案1】:

我也有 macOS Mojave。这三个命令可能会有所帮助:

sudo easy_install pip
pip install Pillow
python3.7 -m pip install pillow

我能够用你的代码和 python3.7 命令打开 jpeg 文件。

【讨论】:

png 文件的表现如何? 是的,它也适用于 png 文件——我刚刚对其进行了测试。不同之处不仅在于路径,还在于具有不同软件版本的整个系统。必须符合 macOS 上的命令行才能解决此问题:python.org/download/mac/tcltk macOS 上的 PIL 包有多个问题:google "python PIL mac"

以上是关于Tkinter 画布图像适用于 Windows 但不适用于 OSX的主要内容,如果未能解决你的问题,请参考以下文章

画布图像的图像效果不使用 php 上传保存,但适用于下载相同的画布文件

Python,Tkinter:如何在可滚动画布上获取坐标

Python:Tkinter iconbitmap赋值仅适用于模块级别

适用于 Android 画布的橡皮擦/橡胶

在 tkinter 画布中显示图像

如何同时移动两个 tkinter 小部件但异步?