赞
踩
最近做一个以图搜图的项目时,老师让做一个GUI的界面,因为之前学过tkinter所以信心满满的去做,结果搞了一下午,布局都没建好,瞬间崩溃。
项目的主要需求是:需要添加一个按钮,实现选择图片,并把图片和图片名显示到页面上,同时把相似度最高的图显示出来。
以下是一个点击按钮选择图片,并显示图片名和图片的一个demo
from tkinter import * import tkinter.filedialog from PIL import Image, ImageTk # 只能使用GIF格式 # def choosepic(): # path_=tkinter.filedialog.askopenfilename() # #获取图片路径 # path.set(path_) # #print(path_) # img_gif=tkinter.PhotoImage(file=path_) # l1.config(image=img_gif) # l1.image=img_gif#keep a reference # 可使用其他格式图片,但需要PIL库 def choosepic(): path_ = tkinter.filedialog.askopenfilename() # 获取图片路径 path.set(path_) # print(path_) img_open = Image.open(entry.get()) img = ImageTk.PhotoImage(img_open.resize((200,200)))#把图片缩放以下,不然太大了,放不下 l1.config(image=img) l1.image = img # keep a reference root = tkinter.Tk()#k是小写 root.title("图片显示") #设置大小和位置 root.geometry("800x400+200+200") # root = Tk() path = StringVar() button1 = Button(root, text='选择图片', command=choosepic) button1.pack() entry = Entry(root, state='readonly', text=path,width = 100) entry.pack() l1 = Label(root) l1.pack() root.mainloop()
以下是一个并列显示多张图片的demo
from tkinter import Tk, Label from PIL import Image, ImageTk root = Tk() # 总共4张图片 img_list = ["001-0.jpg", "001-1.jpg", "002-0.jpg", "002-1.jpg"] def load_img(index, item): # 打开图片。 # resize():示例图片太大,这里缩小一些。 img = Image.open(item).resize((200, 200)) # 引用:添加一个Label,用来存储图片。使用PanedWindow也行。 panel = Label(master=root) panel.photo = ImageTk.PhotoImage(img) # 将原本的变量photo改为panel.photo # 图片用Label来显示,参数master改不改为panel都行,这里就不改了。 # 注意:参数image改为panel.photo Label(master=root, image=panel.photo).grid(row=0, column=index) # 使用for循环添加图片,enumerate:获取元素与其索引值 for index, item in enumerate(img_list): load_img(index, item) # 执行函数 root.mainloop()
以下是项目中改动的部分代码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C5vsrPcW-1634806535151)(C:\Users\12235\AppData\Roaming\Typora\typora-user-images\image-20211021165144462.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jDztZkZC-1634806535152)(C:\Users\12235\AppData\Roaming\Typora\typora-user-images\image-20211021165218397.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-az6D909Y-1634806535153)(C:\Users\12235\AppData\Roaming\Typora\typora-user-images\image-20211021165300493.png)]
以上参考了这两篇文章,个人感觉很有用,补足了之前的不足之处。
https://blog.csdn.net/fjdmy001/article/details/78498150
https://blog.csdn.net/m0_50000839/article/details/120078530
01/article/details/78498150
https://blog.csdn.net/m0_50000839/article/details/120078530
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。