簡體   English   中英

如何使gif始終在python中循環?

[英]How to make gif loop all the time in python?

這是我的代碼:

from PIL import Image, ImageSequence
import os

class MyImage:
    def __init__(self,file_path):
        self.image = Image.open(file_path)

def get_rewind(self):
    iter = ImageSequence.Iterator(self.image)
    index = 1
    for frame in iter:

        print("image [{}] : mode {}, size {}".format(index,frame.mode,frame.size))
        frame.save("./rewind-result/frame{}.png".format(index))
        index += 1

    sequence = []

    for f in ImageSequence.Iterator(self.image):
        sequence.append(f.copy())

    sequence.reverse()
    sequence[0].save("./reverse_out.gif",save_all=True, append_images=sequence[1:])

if __name__ == '__main__':
    image = MyImage("./test.gif")
    image.get_rewind()

gif是reverse_out.gif ,但是它循環一次。 那么如何設置循環的屬性呢?

不健康的方法:

from tkinter import *

class GIF(Tk):
    def __init__(self):
        super().__init__()
        self.geometry("500x500")
        self.x = 0

        self.img = PhotoImage(file="filename.gif", format=f"gif -index {self.x}")

        self.canvas = Canvas(self,width=1366, height=768,bd=0,highlightthickness=0)
        self.canvas.pack(expand = 1, fill = BOTH)

        self._img = self.canvas.create_image(0, 0, image=self.img,anchor = NW)
        self.run_gif()
        self.mainloop()

    def run_gif(self):
        try:
            self.img = PhotoImage(file="filename.gif", format=f"gif -index {self.x}")
            self.canvas.itemconfigure(self._img, image=self.img)
            self.x += 1
        except:
            self.x = 0

        self.canvas.after(10, self.run_gif)

GIF()

但是,有些人健康!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM