Python代碼實(shí)現(xiàn)動(dòng)圖倒放
開始分享今天的技術(shù)之前,先來看幾個(gè)動(dòng)圖(gif)
(原圖1)

(倒放1)

(原圖2)

(倒放2)

上訴兩個(gè)動(dòng)圖,可以通過幾行Python代碼就可以實(shí)現(xiàn)倒放效果。
導(dǎo)入庫:
from PIL import Image, ImageSequence
Image庫用于讀?。虞d)圖片
ImageSequence 用于將GIF拆解為圖片(一幀一圖)
# 加載本地動(dòng)圖
image = Image.open("cg.gif")
# GIF 動(dòng)圖拆分器
list = ImageSequence.Iterator(image)拆分動(dòng)圖:
imgs = []
# 拆分后的圖片進(jìn)行編號(hào),從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將拆解后的幀圖進(jìn)行反轉(zhuǎn)(倒序排列),并保存成新的動(dòng)圖reverse_cg.gif
# 拆分圖片流進(jìn)行反序
imgs.reverse()
# 將反序后所有幀圖保存下來,命名為reverse_cg.gif
imgs[0].save("reverse_cg.gif", save_all=True, append_images=imgs[1:])最后生成結(jié)果:

完整源碼:
from PIL import Image, ImageSequence
# 加載本地動(dòng)圖
image = Image.open("cg.gif")
# GIF 動(dòng)圖拆分器
list = ImageSequence.Iterator(image)
?
imgs = []
# 拆分后的圖片進(jìn)行編號(hào),從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
?
# 拆分圖片流進(jìn)行反序
imgs.reverse()
# 將反序后所有幀圖保存下來,命名為reverse_cg.gif
imgs[0].save("reverse_cg.gif", save_all=True, append_images=imgs[1:])以上就是本文的動(dòng)圖倒放技術(shù)過程
原理:讀取動(dòng)圖,將動(dòng)圖進(jìn)行拆分(一幀一圖),將拆分后的動(dòng)圖進(jìn)行反轉(zhuǎn)(實(shí)現(xiàn)倒放的關(guān)鍵),然后反轉(zhuǎn)后的圖片保存新動(dòng)圖(gif)。
到此這篇關(guān)于Python代碼實(shí)現(xiàn)動(dòng)圖倒放的文章就介紹到這了,更多相關(guān)Python動(dòng)圖倒放內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python如何使用正則表達(dá)式的前向、后向搜索及前向搜索否定模式詳解
這篇文章主要給大家介紹了關(guān)于python如何使用正則表達(dá)式的前向、后向搜索及前向搜索否定模式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-11-11
python如何通過protobuf實(shí)現(xiàn)rpc
這篇文章主要為大家詳細(xì)介紹了python通過protobuf實(shí)現(xiàn)rpc的方法,感興趣的朋友可以參考一下2016-03-03
python+opencv實(shí)現(xiàn)動(dòng)態(tài)物體追蹤
這篇文章主要為大家詳細(xì)介紹了python+opencv實(shí)現(xiàn)動(dòng)態(tài)物體的追蹤,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Python自動(dòng)化運(yùn)維中服務(wù)器性能監(jiān)控與告警詳解
這篇文章主要為大家詳細(xì)介紹了Python自動(dòng)化運(yùn)維中服務(wù)器性能監(jiān)控與告警的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-04-04
Pandas統(tǒng)計(jì)計(jì)數(shù)value_counts()的使用
本文主要介紹了Pandas統(tǒng)計(jì)計(jì)數(shù)value_counts()的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
怎么處理Python分割字符串時(shí)有多個(gè)分隔符
在使用Python處理字符串的時(shí)候,有時(shí)候會(huì)需要分割字符。本文就介紹了Python分割字符串時(shí)有多個(gè)分隔符,感興趣的可以了解一下2021-07-07
python dataframe實(shí)現(xiàn)統(tǒng)計(jì)行列中零值的個(gè)數(shù)
這篇文章主要介紹了python dataframe實(shí)現(xiàn)統(tǒng)計(jì)行列中零值的個(gè)數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02

