Python簡單實現(xiàn)gif動圖倒放示例
最近是有點忙,感覺好久沒寫博客了。但是最近看到一個有趣的就是gif動圖的倒放,因為這個原理也并不是很難,而且用到的庫以前也略微的看過一點點,所以要新學(xué)的東西不是很多。
開發(fā)環(huán)境 :pycharm + win10下python環(huán)境
主題思路就是將gif動圖的每一幀都截取下來,將整張動圖拆分成圖片流,然后將圖片流反序,最后將反序后的圖片流重新合成成一張gif動圖,下面貼上代碼 :
# python下的圖像處理庫 from PIL import Image, ImageSequence # 系統(tǒng)模塊 import os # 用于讀取gif動圖 im = Image.open("讀取圖片的名稱") # gif圖片流的迭代器 iter = ImageSequence.Iterator(im) index = 1 for frame in iter: # 每一幀圖片 print("image %d: mode %s, size %s" % (index, frame.mode, frame.size)) # 若保存的路徑不存在,則創(chuàng)建文件夾 path = "imgs" if path not in os.listdir(): os.makedirs(path) # 將每一幀圖片保存到imgs文件夾下 frame.save("./imgs/frame%d.png" % index) index += 1 # 將gif拆分成圖片流 imgs = [frame.copy() for frame in ImageSequence.Iterator(im)] # 輸出原圖 # imgs[0].save("./out.gif", save_all=True, append_images=imgs[1:]) # 將圖片流反序 imgs.reverse() # 將反序后的圖片流保存并輸出 imgs[0].save("./reverse_out.gif", save_all=True, append_images=imgs[1:])
然后下面是拆分的圖片流:
最后是效果圖對比,下面是原圖:
之后就是倒放的動圖:
哇,貌似看起來不是很明顯,但是單獨看兩張動圖就好一點了,原圖是從背到正,轉(zhuǎn)換后是從正臉轉(zhuǎn)身
以上就是Python實現(xiàn)gif動圖倒放示例的詳細內(nèi)容,更多關(guān)于Python實現(xiàn)gif動圖倒放的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python使用Selenium執(zhí)行JavaScript代碼的步驟詳解
Selenium是一個用于自動化瀏覽器操作的工具,可以模擬人工操作,執(zhí)行各種瀏覽器操作,而JavaScript是一種常用的腳本語言,本文將介紹如何在Python中使用Selenium執(zhí)行JavaScript代碼,并給出一些常見的應(yīng)用示例2023-11-11Python劃分數(shù)組為連續(xù)數(shù)字集合的練習(xí)
這篇文章主要給大家分享的是Python劃分數(shù)組為連續(xù)數(shù)字集合的練習(xí),下面文章首先對問題進行詳細描述,在根據(jù)問題提出解決方案,內(nèi)容詳細,需要的朋友可以參考一下,希望對你有所幫助2021-11-11python之Socket網(wǎng)絡(luò)編程詳解
這篇文章主要為大家詳細介紹了python之Socket網(wǎng)絡(luò)編程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09