欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)動(dòng)態(tài)圖解析、合成與倒放

 更新時(shí)間:2018年01月18日 13:43:01   作者:冰不語(yǔ)  
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)動(dòng)態(tài)圖的解析、合成與倒放,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

動(dòng)態(tài)圖現(xiàn)在已經(jīng)融入了我們的日常網(wǎng)絡(luò)生活,大大豐富了我們的表達(dá)方式和交流趣味性。常常是一言不合就扔動(dòng)圖,我這里就不舉例子了,例子太多,平時(shí)大家也都接觸過(guò)。咱們直接開始本文的內(nèi)容。

用到的庫(kù)和模塊

今天用看看如何用Python寫個(gè)程序,進(jìn)行動(dòng)態(tài)圖的解析、合成與倒放。這里我們用到的庫(kù)有且只有PIL。而且只用到了PIL的兩個(gè)模塊Image和ImageSequence。顧名思義,就是圖像模塊和圖像序列模塊。動(dòng)態(tài)圖正好可以看作是圖像序列。

簡(jiǎn)單的原理和代碼

所謂動(dòng)態(tài)圖的解析,就是把GIF格式的圖片轉(zhuǎn)化為圖片流的過(guò)程,而動(dòng)態(tài)圖的合成就是把圖片流重新合成GIF圖片的過(guò)程。而所謂動(dòng)態(tài)圖倒放,就是把圖片流反序之后再合成GIF了。

原理上沒啥難以理解的,我們還是直接看代碼。

from PIL import Image, ImageSequence 

# 讀取GIF
im = Image.open("5.gif")
# GIF圖片流的迭代器
iter = ImageSequence.Iterator(im)

index = 1
# 遍歷圖片流的每一幀
for frame in iter:
 print("image %d: mode %s, size %s" % (index, frame.mode, frame.size))
 frame.save("./imgs/frame%d.png" % index)
 index += 1

# frame0 = frames[0]
# frame0.show()

# 把GIF拆分為圖片流
imgs = [frame.copy() for frame in ImageSequence.Iterator(im)]
# 把圖片流重新成成GIF動(dòng)圖
imgs[0].save('out.gif', save_all=True, append_images=imgs[1:])

# 圖片流反序
imgs.reverse() 
# 將反序后的所有幀圖像保存下來(lái)
imgs[0].save('./reverse_out.gif', save_all=True, append_images=imgs[1:])

效果

以下是動(dòng)圖原圖、效果圖。

倒放的動(dòng)態(tài)圖

動(dòng)態(tài)圖解析得到的圖片流:


補(bǔ)充說(shuō)明

加上注釋之后的代碼完全沒啥可說(shuō)的有木有?

其實(shí)還還是有些地方可說(shuō)的,比如圖片為啥保存為PNG格式的,JPG行不行?比如第六行與第19行末尾的代碼是否重復(fù),第19行末尾能不能用iter代替?

這些問題知道的就算了,不知道的希望能夠自己跑一跑代碼,查一查資料,補(bǔ)充下這方面的小知識(shí)。

除此之外,還有哪些補(bǔ)充知識(shí)的方法呢?當(dāng)然是看書啦~

相關(guān)文章

  • Pycharm快速安裝OpenCV的詳細(xì)操作步驟

    Pycharm快速安裝OpenCV的詳細(xì)操作步驟

    Pycharm中使用OpenCV,其實(shí)也就是用Python語(yǔ)言調(diào)用OpenCV,下面這篇文章主要給大家介紹了關(guān)于Pycharm快速安裝OpenCV的詳細(xì)操作步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python利用命名空間解析XML文檔

    Python利用命名空間解析XML文檔

    這篇文章主要介紹了Python利用命名空間解析XML文檔,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-08-08
  • python實(shí)現(xiàn)簡(jiǎn)單井字棋游戲

    python實(shí)現(xiàn)簡(jiǎn)單井字棋游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單井字棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 詳解Django中的form庫(kù)的使用

    詳解Django中的form庫(kù)的使用

    這篇文章主要介紹了詳解Django中的form庫(kù)的使用,Django是最為著名的Python編程框架,需要的朋友可以參考下
    2015-07-07
  • python elasticsearch從創(chuàng)建索引到寫入數(shù)據(jù)的全過(guò)程

    python elasticsearch從創(chuàng)建索引到寫入數(shù)據(jù)的全過(guò)程

    這篇文章主要介紹了python elasticsearch從創(chuàng)建索引到寫入數(shù)據(jù)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python數(shù)據(jù)XPath使用案例詳解

    python數(shù)據(jù)XPath使用案例詳解

    xpath是最常用且最便捷高效的一種解析方式,通用型強(qiáng),其不僅可以用于python語(yǔ)言中,還可以用于其他語(yǔ)言中,數(shù)據(jù)解析建議首先xpath
    2021-09-09
  • python實(shí)現(xiàn)二維碼掃碼自動(dòng)登錄淘寶

    python實(shí)現(xiàn)二維碼掃碼自動(dòng)登錄淘寶

    最近做項(xiàng)目,需要用到自動(dòng)登錄淘寶,正好在學(xué)習(xí)python,整網(wǎng)絡(luò)爬蟲,所以就嘗試著寫一個(gè)腳本,自動(dòng)解決。有相同需求的小伙伴可以參考下
    2016-12-12
  • 使用Python的networkx繪制精美網(wǎng)絡(luò)圖教程

    使用Python的networkx繪制精美網(wǎng)絡(luò)圖教程

    今天小編就為大家分享一篇使用Python的networkx繪制精美網(wǎng)絡(luò)圖教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 使用pycharm生成代碼模板的實(shí)例

    使用pycharm生成代碼模板的實(shí)例

    今天小編就為大家分享一篇使用pycharm生成代碼模板的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Pytorch實(shí)現(xiàn)圖像識(shí)別之?dāng)?shù)字識(shí)別(附詳細(xì)注釋)

    Pytorch實(shí)現(xiàn)圖像識(shí)別之?dāng)?shù)字識(shí)別(附詳細(xì)注釋)

    這篇文章主要介紹了Pytorch實(shí)現(xiàn)圖像識(shí)別之?dāng)?shù)字識(shí)別(附詳細(xì)注釋),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評(píng)論