报错:
AttributeError:type object ‘Image‘ has no attribute 'fromarray'
AttributeError:'PhotoImage' has no attribute '_PhotoImage__photo'
导入模块的时候需要注意:
不同的两个module中可能存在相同的type,比如PIL和tkinter中都存在Image,这时候就要注意区分。
from PIL import Image,ImageTk
from tkinter import *
↑这样写就会报错
解决:
from PIL import Image, ImageTk # 导入图像处理函数库
import tkinter # 导入GUI界面函数库
修改代码把tkinter的前缀们加上就跑的通了。此时程序就知道我们要调用的是PIL里的Image,而不是tkinter里的。
问题:
tkinter中在canvas上图片不显示
image = Image.open(filename)
im = ImageTk.PhotoImage(image)
canvas.create_image((33, 33), image=im)
↑这个代码是对的 但运行之后不显示图片。
解决:
把canvas.create_image(width,height,image = im)中的第三个参数image声明为全局变量。
# 使用之前先声明
image = None
im = None
#使用时声明全局变量
global image
global im
image = Image.open(filename)
im = ImageTk.PhotoImage(image)
canvas.create_image((33, 33), image=im)