无忧启动论坛
标题:
查看图片缩略图
[打印本页]
作者:
batche
时间:
2023-6-28 15:16
标题:
查看图片缩略图
本帖最后由 batche 于 2023-6-28 16:12 编辑
临时需要,写了一个简单的图片缩略图查看程序,在这里分享出来
import os
from PIL import Image, ImageTk
import Tkinter
import tkFileDialog
folder_path = os.path.join(os.path.expanduser('~'), 'Pictures')
window = Tkinter.Tk()
window.title("Thumbnail Viewer-wuyou@batche-" + folder_path)
window.geometry("580x300")
canvas = Tkinter.Canvas(window, borderwidth=0, highlightthickness=0)
scrollbar = Tkinter.Scrollbar(window, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=scrollbar.set)
scrollbar.pack(side="right", fill="y")
canvas.pack(side="left", fill="both", expand=True)
frame = Tkinter.Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
thumbnail_labels = []
def reload_thumbnails():
for label in thumbnail_labels:
label.grid_forget()
del thumbnail_labels[:]
row = 0
col = 0
for filename in os.listdir(folder_path):
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"):
image = Image.open(os.path.join(folder_path, filename))
thumbnail_image = image.copy()
thumbnail_image.thumbnail((100, 100), Image.LANCZOS)
thumbnail_tk = ImageTk.PhotoImage(thumbnail_image)
thumbnail_label = Tkinter.Label(frame, image=thumbnail_tk)
thumbnail_label.image = thumbnail_tk
thumbnail_labels.append(thumbnail_label)
thumbnail_label.bind("<Double-Button-1>", lambda event, filename=filename: open_image(os.path.join(folder_path, filename)))
thumbnail_label.grid(row=row, column=col, padx=5, pady=5)
col += 1
if col == 5:
row += 1
col = 0
frame.update_idletasks()
canvas.configure(scrollregion=canvas.bbox("all"))
def open_image(filename):
image = Image.open(filename)
image.show()
def choose_folder():
global folder_path
folder_path = tkFileDialog.askdirectory()
window.title("Thumbnail Viewer - " + folder_path)
reload_thumbnails()
menu_bar = Tkinter.Menu(window)
window.config(menu=menu_bar)
file_menu = Tkinter.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="change folder", menu=file_menu)
file_menu.add_command(label="Select Folder", command=choose_folder)
file_menu.add_separator()
file_menu.add_command(label="Exit", command=window.quit)
reload_thumbnails()
def on_mousewheel(event):
canvas.yview_scroll(-1 * int((event.delta / 120)), "units")
canvas.bind_all("<MouseWheel>", on_mousewheel)
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