python编写一个图片浏览器
时间: 2023-09-16 14:10:22 浏览: 42
以下是一个简单的图片浏览器的示例代码:
```python
import tkinter as tk
from PIL import ImageTk, Image
import os
class ImageViewer:
def __init__(self, root):
self.root = root
self.root.title("图片浏览器")
self.root.geometry("500x500")
# 获取图片路径列表
self.img_list = []
for f in os.listdir():
if f.endswith(".jpg") or f.endswith(".png"):
self.img_list.append(f)
# 初始化图片索引和图片对象
self.img_idx = 0
self.img = Image.open(self.img_list[self.img_idx])
# 显示图片
self.canvas = tk.Canvas(self.root, width=500, height=500)
self.canvas.pack()
self.display_image()
# 创建按钮
self.prev_button = tk.Button(self.root, text="上一张", command=self.prev_image)
self.prev_button.pack(side="left")
self.next_button = tk.Button(self.root, text="下一张", command=self.next_image)
self.next_button.pack(side="right")
def display_image(self):
# 调整图片大小以适应窗口
self.img = self.img.resize((500, 500))
self.img_tk = ImageTk.PhotoImage(self.img)
# 在画布上显示图片
self.canvas.create_image(0, 0, anchor="nw", image=self.img_tk)
def prev_image(self):
# 显示上一张图片
if self.img_idx > 0:
self.img_idx -= 1
self.img = Image.open(self.img_list[self.img_idx])
self.display_image()
def next_image(self):
# 显示下一张图片
if self.img_idx < len(self.img_list) - 1:
self.img_idx += 1
self.img = Image.open(self.img_list[self.img_idx])
self.display_image()
# 启动程序
root = tk.Tk()
app = ImageViewer(root)
root.mainloop()
```
该程序使用了tkinter作为GUI库,Pillow(PIL)作为图片处理库。程序首先获取当前目录下的所有.jpg和.png文件,然后在窗口中显示第一张图片。用户可以通过点击“上一张”和“下一张”按钮来切换图片。