您好,登錄后才能下訂單哦!
這篇文章給大家介紹使用Python怎么將GIF動(dòng)圖分解成多張靜態(tài)圖片,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
GIF 動(dòng)態(tài)圖片是由多張靜態(tài)圖片組合而成,按照一定的順序和時(shí)間進(jìn)行播放?;诖耍懿荒軐?GIF 圖片反向分解成一張張靜態(tài)圖呢?即 GIF 圖片有多少幀,就有多少?gòu)堨o態(tài)圖片。答案是肯定的! 都有現(xiàn)成的工具,有免費(fèi)的,有付費(fèi)的,有在線(xiàn)版的;還有些專(zhuān)門(mén)處理 GIF 動(dòng)態(tài)圖片的強(qiáng)大工具。
不過(guò),作為 IT 人,不試試自己實(shí)現(xiàn)嗎?初學(xué)編程,可以練練手;高手可 DIY 可擴(kuò)展,不受限制,“無(wú)拘無(wú)束”!
那么,如何用代碼實(shí)現(xiàn)這個(gè)需求呢?有人說(shuō),“Python 除了不會(huì)生孩子,什么都會(huì)。”這件區(qū)區(qū)小事,Python 實(shí)現(xiàn)也當(dāng)然不在話(huà)下了!這是一個(gè)圖像處理問(wèn)題,Python Imaging Library 這不是 PIL 庫(kù)嗎? PIL 已經(jīng)是 Python 平臺(tái)事實(shí)上的圖像處理標(biāo)準(zhǔn)庫(kù)了。PIL 功能非常強(qiáng)大,但 API 卻非常簡(jiǎn)單易用。不過(guò),
由于 PIL 僅支持到 Python 2.7,加上年久失修,于是一群志愿者在 PIL 的基礎(chǔ)上創(chuàng)建了兼容的版本,名字叫 Pillow,支持最新 Python 3.x,又加入了許多新特性,因此,我們可以直接安裝使用 Pillow。
在 Pillow 中,有一個(gè)模塊是專(zhuān)門(mén)實(shí)現(xiàn)動(dòng)態(tài)圖片提取功能的,這就是 ImageSequence 模塊,這個(gè)模塊包含一個(gè)包裝器類(lèi),可以幫助用戶(hù)迭代圖像序列的幀。它可以遍歷動(dòng)畫(huà)、 GIF 等 。 此類(lèi)接受一個(gè)圖像對(duì)象作為參數(shù)。它實(shí)現(xiàn)了一個(gè)迭代器對(duì)象,用戶(hù)可以使用該對(duì)象在圖像序列上進(jìn)行迭代。其語(yǔ)法為:
classPIL.ImageSequence.Iterator(im)
通過(guò)以上的了解,我們就可以小試牛刀了,如果你還沒(méi)安裝 Pillow,可以通過(guò) pip
進(jìn)行安裝: pip install pillow
。由于時(shí)間關(guān)系,我已經(jīng)安裝好了。另外,你還可以通過(guò) pip list
命令列出安裝了的 Python 包,看是否已經(jīng)安裝了 Pillow。
再接著,不廢話(huà),直接上 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
最終效果如下圖所示,再調(diào)整優(yōu)化,完善完善即可:
關(guān)于使用Python怎么將GIF動(dòng)圖分解成多張靜態(tài)圖片就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。