Python簡單實現gif動圖倒放示例

最近是有點忙,感覺好久沒寫博客瞭。但是最近看到一個有趣的就是gif動圖的倒放,因為這個原理也並不是很難,而且用到的庫以前也略微的看過一點點,所以要新學的東西不是很多。

開發環境 :pycharm + win10下python環境

主題思路就是將gif動圖的每一幀都截取下來,將整張動圖拆分成圖片流,然後將圖片流反序,最後將反序後的圖片流重新合成成一張gif動圖,下面貼上代碼  :

# python下的圖像處理庫
from PIL import Image, ImageSequence
# 系統模塊
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))
    # 若保存的路徑不存在,則創建文件夾
    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:])

然後下面是拆分的圖片流:

最後是效果圖對比,下面是原圖:

之後就是倒放的動圖:

哇,貌似看起來不是很明顯,但是單獨看兩張動圖就好一點瞭,原圖是從背到正,轉換後是從正臉轉身

以上就是Python實現gif動圖倒放示例的詳細內容,更多關於Python實現gif動圖倒放的資料請關註LevelAH其它相關文章!

推薦閱讀: