47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
import tkinter as tk
|
|
from PIL import ImageTk, Image
|
|
import os
|
|
import time
|
|
|
|
class SlideshowApp:
|
|
def __init__(self, root, image_paths):
|
|
self.root = root
|
|
self.paths = image_paths
|
|
self.idx = 0
|
|
|
|
self.image_label = tk.Label(root)
|
|
self.image_label.pack()
|
|
self.image_label.pack(fill=tk.BOTH, expand=True)
|
|
|
|
self.show_next_image()
|
|
|
|
def show_next_image(self):
|
|
img_path = self.paths[self.idx]
|
|
image = Image.open(img_path)
|
|
|
|
# Get root window width and height
|
|
screen_width = self.root.winfo_width()
|
|
screen_height = self.root.winfo_height()
|
|
|
|
# Resize the image to fit the screen
|
|
image = image.resize((screen_width, screen_height), Image.ANTIALIAS)
|
|
|
|
photo = ImageTk.PhotoImage(image)
|
|
self.image_label.config(image=photo)
|
|
self.image_label.image = photo
|
|
|
|
self.idx = (self.idx + 1) % len(self.paths)
|
|
self.root.after(2000, self.show_next_image)
|
|
|
|
def main():
|
|
root = tk.Tk()
|
|
root.title("Image Slideshow")
|
|
|
|
|
|
img_paths = ["./data/960x0-1053101061.jpg", "./data/my-linux-desktop-1131547615.png", "./data/glzrkk83f4621-1200x671-54057802.jpg", "./data/yjdoiycuw04lvrebijtw-605729284.jpg"]
|
|
app = SlideshowApp(root, img_paths)
|
|
root.mainloop()
|
|
|
|
if __name__ == "__main__":
|
|
main()
|