无忧启动论坛

标题: 查看图片缩略图 [打印本页]

作者: batche    时间: 2023-6-28 15:16
标题: 查看图片缩略图
本帖最后由 batche 于 2023-6-28 16:12 编辑

临时需要,写了一个简单的图片缩略图查看程序,在这里分享出来



  1. import os
  2. from PIL import Image, ImageTk
  3. import Tkinter
  4. import tkFileDialog
  5. folder_path = os.path.join(os.path.expanduser('~'), 'Pictures')
  6. window = Tkinter.Tk()
  7. window.title("Thumbnail Viewer-wuyou@batche-" + folder_path)
  8. window.geometry("580x300")
  9. canvas = Tkinter.Canvas(window, borderwidth=0, highlightthickness=0)
  10. scrollbar = Tkinter.Scrollbar(window, orient="vertical", command=canvas.yview)
  11. canvas.configure(yscrollcommand=scrollbar.set)
  12. scrollbar.pack(side="right", fill="y")
  13. canvas.pack(side="left", fill="both", expand=True)
  14. frame = Tkinter.Frame(canvas)
  15. canvas.create_window((0, 0), window=frame, anchor="nw")
  16. thumbnail_labels = []
  17. def reload_thumbnails():
  18.     for label in thumbnail_labels:
  19.         label.grid_forget()
  20.     del thumbnail_labels[:]
  21.     row = 0
  22.     col = 0
  23.     for filename in os.listdir(folder_path):
  24.         if filename.endswith(".jpg") or filename.endswith(".jpeg") or filename.endswith(".png") or filename.endswith(".gif") or filename.endswith(".bmp") or filename.endswith(".webp") or filename.endswith(".jfif"):
  25.             image = Image.open(os.path.join(folder_path, filename))
  26.             thumbnail_image = image.copy()
  27.             thumbnail_image.thumbnail((100, 100), Image.LANCZOS)
  28.             thumbnail_tk = ImageTk.PhotoImage(thumbnail_image)
  29.             thumbnail_label = Tkinter.Label(frame, image=thumbnail_tk)
  30.             thumbnail_label.image = thumbnail_tk
  31.             thumbnail_labels.append(thumbnail_label)
  32.             thumbnail_label.bind("<Double-Button-1>", lambda event, filename=filename: open_image(os.path.join(folder_path, filename)))
  33.             thumbnail_label.grid(row=row, column=col, padx=5, pady=5)
  34.             col += 1
  35.             if col == 5:
  36.                 row += 1
  37.                 col = 0
  38.     frame.update_idletasks()
  39.     canvas.configure(scrollregion=canvas.bbox("all"))
  40. def open_image(filename):
  41.     image = Image.open(filename)
  42.     image.show()
  43. def choose_folder():
  44.     global folder_path
  45.     folder_path = tkFileDialog.askdirectory()
  46.     window.title("Thumbnail Viewer - " + folder_path)
  47.     reload_thumbnails()
  48. menu_bar = Tkinter.Menu(window)
  49. window.config(menu=menu_bar)
  50. file_menu = Tkinter.Menu(menu_bar, tearoff=0)
  51. menu_bar.add_cascade(label="change folder", menu=file_menu)
  52. file_menu.add_command(label="Select Folder", command=choose_folder)
  53. file_menu.add_separator()
  54. file_menu.add_command(label="Exit", command=window.quit)
  55. reload_thumbnails()
  56. def on_mousewheel(event):
  57.     canvas.yview_scroll(-1 * int((event.delta / 120)), "units")
  58. canvas.bind_all("<MouseWheel>", on_mousewheel)
  59. window.mainloop()
复制代码

程序及源码链接:pan.baidu.com/s/10xJivEswDHjexMGYx8s7gQ?pwd=r38m


作者: 2010zhangyen    时间: 2023-6-28 15:21
谢谢分享
作者: yyz2191958    时间: 2023-6-28 15:33
谢谢分享
作者: red7834    时间: 2023-6-28 15:40
谢谢分享
作者: yc2428    时间: 2023-6-28 15:58
感谢分享
作者: lei'yuan    时间: 2023-6-28 16:03
谢谢分享
作者: fengkissping    时间: 2023-6-28 16:23
感谢 分享 下载试一试
作者: 2011lanz    时间: 2023-6-28 16:29
下载学习,谢谢分享!
作者: Herofmd    时间: 2023-6-28 16:36

谢谢分享
作者: 邪恶海盗    时间: 2023-6-28 16:38
牛屁,需要啥直接造啥,不过话说文件夹右键不是直接能设置显示缩略图么?
作者: bznmsl    时间: 2023-6-28 17:17
高手
作者: 旁观者清    时间: 2023-6-28 19:58
谢谢分享。
作者: hnlysyj008    时间: 2023-6-28 22:38
感谢楼主分享!
作者: dszsdyx    时间: 2023-6-29 04:38
挺厉害的,支持原创。
作者: ylac    时间: 2023-6-29 07:39
学习下,谢谢分享
作者: binyue1985    时间: 2023-6-29 08:10
很佩服比我优秀的人
作者: keithkong    时间: 2023-6-29 08:23
感谢分享,学习一下
作者: nttwqz    时间: 2023-6-29 08:40
论坛真是藏龙卧虎之地!
作者: ebing    时间: 2023-6-29 08:56
感谢分享!
作者: sulong    时间: 2023-6-29 09:18
楼主,支持
作者: linee    时间: 2023-6-29 10:22
支持原创, 谢谢分享.
作者: chibuzhu    时间: 2023-6-29 10:33
感谢分享
作者: D0D    时间: 2023-6-29 10:34
谢谢分享
作者: 深深的沼泽    时间: 2023-6-29 16:11
这个怎么用啊,我双击下怎么没反应,还是需要先安装什么运行库,或者NET
作者: shery999    时间: 2023-6-29 16:21
谢谢分享
作者: fegr    时间: 2023-6-29 16:33
感谢分享
作者: 天使再臨    时间: 2023-6-29 17:11
邮件,查看,超大图标
作者: JayeDieyan    时间: 2023-6-29 17:12
感谢分享
作者: zhangjunhao31    时间: 2023-6-29 17:33
谢谢分享
作者: wanigu    时间: 2023-6-29 17:41

谢谢分享
作者: yyz2191958    时间: 2023-6-29 18:52
天使再臨 发表于 2023-6-29 17:11
邮件,查看,超大图标

也是一种方法
作者: zlzx01    时间: 2023-7-3 09:37
感谢分享!
作者: 201027149    时间: 2023-11-6 17:25
还是感谢楼主分享,东西很好,网盘很渣。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3