溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python怎么將GIF動圖分解成多張靜態圖片

發布時間:2021-06-11 16:36:53 來源:億速云 閱讀:161 作者:Leah 欄目:開發技術

這篇文章給大家介紹使用Python怎么將GIF動圖分解成多張靜態圖片,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

實現

GIF 動態圖片是由多張靜態圖片組合而成,按照一定的順序和時間進行播放?;诖?,能不能將 GIF 圖片反向分解成一張張靜態圖呢?即 GIF 圖片有多少幀,就有多少張靜態圖片。答案是肯定的! 都有現成的工具,有免費的,有付費的,有在線版的;還有些專門處理 GIF 動態圖片的強大工具。

不過,作為 IT 人,不試試自己實現嗎?初學編程,可以練練手;高手可 DIY 可擴展,不受限制,“無拘無束”!

那么,如何用代碼實現這個需求呢?有人說,“Python 除了不會生孩子,什么都會?!边@件區區小事,Python 實現也當然不在話下了!這是一個圖像處理問題,Python Imaging Library 這不是 PIL 庫嗎? PIL 已經是 Python 平臺事實上的圖像處理標準庫了。PIL 功能非常強大,但 API 卻非常簡單易用。不過,

由于 PIL 僅支持到 Python 2.7,加上年久失修,于是一群志愿者在 PIL 的基礎上創建了兼容的版本,名字叫 Pillow,支持最新 Python 3.x,又加入了許多新特性,因此,我們可以直接安裝使用 Pillow。

在 Pillow 中,有一個模塊是專門實現動態圖片提取功能的,這就是 ImageSequence 模塊,這個模塊包含一個包裝器類,可以幫助用戶迭代圖像序列的幀。它可以遍歷動畫、 GIF 等 。 此類接受一個圖像對象作為參數。它實現了一個迭代器對象,用戶可以使用該對象在圖像序列上進行迭代。其語法為:

classPIL.ImageSequence.Iterator(im)

通過以上的了解,我們就可以小試牛刀了,如果你還沒安裝 Pillow,可以通過 pip 進行安裝: pip install pillow 。由于時間關系,我已經安裝好了。另外,你還可以通過 pip list 命令列出安裝了的 Python 包,看是否已經安裝了 Pillow。

使用Python怎么將GIF動圖分解成多張靜態圖片

再接著,不廢話,直接上 Demo 代碼:

from PIL import Image, ImageSequence

with Image.open("girls-min.gif") as im:
    index = 1
    for frame in ImageSequence.Iterator(im):
        frame.save(f"girl{index}.png")
        index += 1

最終效果如下圖所示,再調整優化,完善完善即可:

使用Python怎么將GIF動圖分解成多張靜態圖片

關于使用Python怎么將GIF動圖分解成多張靜態圖片就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女