Python代碼實現動圖倒放
開始分享今天的技術之前,先來看幾個動圖(gif)
(原圖1)
(倒放1)
(原圖2)
(倒放2)
上訴兩個動圖,可以通過幾行Python
代碼就可以實現倒放效果。
導入庫:
from PIL import Image, ImageSequence
Image
庫用于讀?。虞d)圖片
ImageSequence
用于將GIF拆解為圖片(一幀一圖)
# 加載本地動圖 image = Image.open("cg.gif") # GIF 動圖拆分器 list = ImageSequence.Iterator(image)
拆分動圖:
imgs = [] # 拆分后的圖片進行編號,從1開始 k = 1 # 遍歷圖片流的每一幀 for frame in list: ? ? # 拆分后的圖片,保存到chenge文件夾下,圖片命名為img_1.png、img_2.png、... ? ? frame.save("./chenge/img_%d.png" % k) ? ? imgs.append(frame.copy()) ? ? k += 1
將拆解后的幀圖進行反轉(倒序排列),并保存成新的動圖reverse_cg.gif
# 拆分圖片流進行反序 imgs.reverse() # 將反序后所有幀圖保存下來,命名為reverse_cg.gif imgs[0].save("reverse_cg.gif", save_all=True, append_images=imgs[1:])
最后生成結果:
完整源碼:
from PIL import Image, ImageSequence # 加載本地動圖 image = Image.open("cg.gif") # GIF 動圖拆分器 list = ImageSequence.Iterator(image) ? imgs = [] # 拆分后的圖片進行編號,從1開始 k = 1 # 遍歷圖片流的每一幀 for frame in list: ? ? # 拆分后的圖片,保存到chenge文件夾下,圖片命名為img_1.png、img_2.png、... ? ? frame.save("./chenge/img_%d.png" % k) ? ? imgs.append(frame.copy()) ? ? k += 1 ? # 拆分圖片流進行反序 imgs.reverse() # 將反序后所有幀圖保存下來,命名為reverse_cg.gif imgs[0].save("reverse_cg.gif", save_all=True, append_images=imgs[1:])
以上就是本文的動圖倒放技術過程
原理:讀取動圖,將動圖進行拆分(一幀一圖),將拆分后的動圖進行反轉(實現倒放的關鍵),然后反轉后的圖片保存新動圖(gif)。
到此這篇關于Python代碼實現動圖倒放的文章就介紹到這了,更多相關Python動圖倒放內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python3 如何使用 goto 跳轉執(zhí)行到指定代碼行
這篇文章主要介紹了python3 使用goto跳轉執(zhí)行到指定代碼行的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python入門教程(二十)Python的Lambda表達式
這篇文章主要介紹了Python入門教程(二十)Python的Lambda表達式,lambda表達式是一行的函數。它們在其他語言中也被稱為匿名函數,lambda表達式非常有用,可以讓代碼簡單,簡潔,需要的朋友可以參考下2023-04-04