国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 16:09:21
字體:
來源:轉載
供稿:網友

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

用到的庫和模塊

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

簡單的原理和代碼

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

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

from PIL import Image, ImageSequence # 讀取GIFim = 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動圖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,動態(tài)圖,合成,倒放

倒放的動態(tài)圖

Python,動態(tài)圖,合成,倒放

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

Python,動態(tài)圖,合成,倒放

補充說明

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

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

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

除此之外,還有哪些補充知識的方法呢?當然是看書啦~


注:相關教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成都市| 专栏| 龙陵县| 阿城市| 麻城市| 松桃| 衡阳市| 皮山县| 阿鲁科尔沁旗| 泸定县| 大化| 冕宁县| 阳城县| 景德镇市| 焦作市| 星子县| 浦江县| 凯里市| 当阳市| 新河县| 达尔| 光泽县| 买车| 寿宁县| 河源市| 故城县| 康平县| 西宁市| 凌海市| 河曲县| 龙泉市| 五原县| 宁晋县| 吴江市| 马公市| 广丰县| 天全县| 沙田区| 新安县| 资溪县| 阿鲁科尔沁旗|