Python 使用PIL.Image制作運動小人的動態圖思路詳解

準備材料:

圖片img.png 大小:804×165

制作思路:

把圖片拆分成12等分,每幀大小:67×165;連續讀取和播放就會形成動態圖像。

源代碼:

import tkinter as tk
from PIL import Image,ImageTk
from time import sleep
 
flag = False
 
def pause():
    global flag
    flag = not flag
    while flag:
        doing()
 
def doing():
    global flag
    while flag:
        for i in range(12):
            if not flag:break
            box = f_out.crop((i*67,0,i*67+67,164))
            img = ImageTk.PhotoImage(image=box)
            gif = cv.create_image(180,135,image=img)
            cv.update()
            sleep(0.2)
 
root = tk.Tk()
root.geometry('400x320')
cv = tk.Canvas(root, width=350, height=260, bg='lightgray')
cv.pack()
f_in = 'd:\\img.png'
f_out = Image.open(f_in)
 
box = f_out.crop((0,0,67,164))
img = ImageTk.PhotoImage(image=box)
gif = cv.create_image(180,135,image=img)
 
tk.Button(root,command=pause,text='動作/停止').place(x=170,y=275)
 
root.mainloop()

運行效果:

到此這篇關於Python 使用PIL.Image制作一個運動小人的動態圖的文章就介紹到這瞭,更多相關Python PIL.Image動態圖內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: