无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4545|回复: 32
打印 上一主题 下一主题

[原创] 查看图片缩略图

  [复制链接]
跳转到指定楼层
1#
发表于 2023-6-28 15:16:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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

2#
发表于 2023-6-28 15:21:26 | 只看该作者
谢谢分享
回复

使用道具 举报

3#
发表于 2023-6-28 15:33:05 | 只看该作者
谢谢分享
回复

使用道具 举报

4#
发表于 2023-6-28 15:40:13 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
发表于 2023-6-28 15:58:55 | 只看该作者
感谢分享
回复

使用道具 举报

6#
发表于 2023-6-28 16:03:14 | 只看该作者
谢谢分享
回复

使用道具 举报

7#
发表于 2023-6-28 16:23:41 | 只看该作者
感谢 分享 下载试一试
回复

使用道具 举报

8#
发表于 2023-6-28 16:29:00 | 只看该作者
下载学习,谢谢分享!
回复

使用道具 举报

9#
发表于 2023-6-28 16:36:22 | 只看该作者

谢谢分享
回复

使用道具 举报

10#
发表于 2023-6-28 16:38:29 | 只看该作者
牛屁,需要啥直接造啥,不过话说文件夹右键不是直接能设置显示缩略图么?
回复

使用道具 举报

11#
发表于 2023-6-28 17:17:06 | 只看该作者
高手
回复

使用道具 举报

12#
发表于 2023-6-28 19:58:07 | 只看该作者
谢谢分享。
回复

使用道具 举报

13#
发表于 2023-6-28 22:38:38 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

14#
发表于 2023-6-29 04:38:47 | 只看该作者
挺厉害的,支持原创。
回复

使用道具 举报

15#
发表于 2023-6-29 07:39:44 | 只看该作者
学习下,谢谢分享
回复

使用道具 举报

16#
发表于 2023-6-29 08:10:50 | 只看该作者
很佩服比我优秀的人
回复

使用道具 举报

17#
发表于 2023-6-29 08:23:55 | 只看该作者
感谢分享,学习一下
回复

使用道具 举报

18#
发表于 2023-6-29 08:40:22 来自手机 | 只看该作者
论坛真是藏龙卧虎之地!
回复

使用道具 举报

19#
发表于 2023-6-29 08:56:12 | 只看该作者
感谢分享!
回复

使用道具 举报

20#
发表于 2023-6-29 09:18:22 | 只看该作者
楼主,支持
回复

使用道具 举报

21#
发表于 2023-6-29 10:22:01 | 只看该作者
支持原创, 谢谢分享.
回复

使用道具 举报

22#
发表于 2023-6-29 10:33:03 | 只看该作者
感谢分享
回复

使用道具 举报

23#
发表于 2023-6-29 10:34:39 | 只看该作者
谢谢分享
回复

使用道具 举报

24#
发表于 2023-6-29 16:11:54 | 只看该作者
这个怎么用啊,我双击下怎么没反应,还是需要先安装什么运行库,或者NET
回复

使用道具 举报

25#
发表于 2023-6-29 16:21:47 | 只看该作者
谢谢分享
回复

使用道具 举报

26#
发表于 2023-6-29 16:33:32 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

27#
发表于 2023-6-29 17:11:35 | 只看该作者
邮件,查看,超大图标

点评

也是一种方法  详情 回复 发表于 2023-6-29 18:52
回复

使用道具 举报

28#
发表于 2023-6-29 17:12:53 | 只看该作者
感谢分享
回复

使用道具 举报

29#
发表于 2023-6-29 17:33:08 | 只看该作者
谢谢分享
回复

使用道具 举报

30#
发表于 2023-6-29 17:41:02 | 只看该作者

谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-27 12:16

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表