存在问题:
pycharm中读取图时只能读取png和gif格式的图,但jpg不能读取
如下代码,此处用的是tkinter模块读取图,但只能读取png和gif
import tkinter as tk
import time
root=tk.Tk() #定义一个tkinter类tk; Tkinter为图形界面库
root.title("随机点名") #标题
root.geometry('550x450') #窗体尺寸
#定义图标签位
img=r'F:\PythonFiles\PycharmFile\exc.gif'
#只能读取png或gif文件,jpg不能读取
photo = tk.PhotoImage(file=img)
labelImg = tk.Label(root,image = photo)label.image = photo
labelImg.pack()
#labelImg.pack(padx=5, pady=10, side=tk.LEFT)
labelImg.place(x = 100,y = 150)
root.mainloop() #使窗口保持
解决方案:
从PIL 引入Image和ImageTk模块,利用该模块加载jpg图即可
Image是用于读取图的
ImageTk是用于后续讲Image格式图装化为Tkinter类型图,方便在窗体上显示
代码如下:
import tkinter as tk
from PIL import Image,ImageTk
root=tk.Tk() #定义一个tkinter类tk; Tkinter为图形界面库
root.title("随机点名") #标题
root.geometry('550x450') #窗体尺寸
#定义图标签位
img=r'F:\PythonFiles\PycharmFile\exc.jpg' #只能读取png文件,jpg不能读取
photo = Image.open(img) #利用Image模块打开图
tkPhoto=ImageTk.PhotoImage(photo) #把Image图改为tkinter类型图
labelImg = tk.Label(root, image=tkPhoto)
labelImg.pack()
labelImg.config(image=tkPhoto) #以下两句代码非常重要,是保证图在函数中可以被加载的途径
labelImg.image = tkPhoto
labelImg = tk.Label(root,image = tkPhoto)
labelImg.pack()
root.mainloop() #使窗口保持