最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用Python將動(dòng)態(tài)GIF圖片倒放播放的方法

 更新時(shí)間:2016年11月02日 14:41:01   投稿:mrr  
GIF(Graphics Interchange Format) 是一種可以用來呈現(xiàn)動(dòng)畫效果的圖片格式,原理就是保存很多幀(Frame)靜態(tài)圖像,然后連續(xù)呈現(xiàn)。這篇文章主要介紹了用Python將動(dòng)態(tài)GIF圖片倒放播放的方法,需要的朋友可以參考下

這次讓我們一個(gè)用 Python 做一個(gè)小工具:將動(dòng)態(tài) GIF 圖片倒序播放!

GIF(Graphics Interchange Format) 是一種可以用來呈現(xiàn)動(dòng)畫效果的圖片格式,原理就是保存很多幀(Frame)靜態(tài)圖像,然后連續(xù)呈現(xiàn)。很多簡(jiǎn)短的視頻也會(huì)被轉(zhuǎn)換成動(dòng)態(tài) GIF 呈現(xiàn),壓縮畫質(zhì)和去除聲音之后可以有效地減小文件大小。網(wǎng)絡(luò)上不計(jì)其數(shù)的搞笑動(dòng)圖,幾乎承載了網(wǎng)友大半的歡樂,但是也有人發(fā)現(xiàn),將正常的動(dòng)畫倒序播放往往可以獲得更搞笑的效果,Reddit 上甚至有一個(gè)專門的節(jié)點(diǎn):/r/reversegif。

要做到這一點(diǎn)其實(shí)很簡(jiǎn)單,只要從原始圖片中提取中間每一幀靜態(tài)圖像,然后將順序顛倒之后重新生成一張 GIF 圖片即可。Python 中專門用于處理圖像的庫(kù)是 PIL,在 PIL 基礎(chǔ)上由 Alex Clark 等人開發(fā)了一個(gè)更友好的版本:Pillow。于是首先來安裝(或升級(jí))Pillow:

pip install --upgrade pillow -i http://pypi.douban.com/simple
python -c "import PIL; print(PIL.VERSION, '\t', PIL.PILLOW_VERSION)"
// 1.1.7 3.4.2
利用 Pillow 可以先讀取圖片文件并判斷該圖片是否為動(dòng)態(tài)圖片及其幀數(shù):
from PIL import Imagewith Image.open('ani.gif') as im:
print(im.is_animated, im.n_frames)

新版本的 Pillow 提供了更多寫入 GIF 的功能:

im.save(out, save_all=True, append_images=[im1, im2, ...])

通過設(shè)定 save_all=True 參數(shù)和 append_images 可以一次性將多幀圖像同時(shí)存入 GIF 圖片,于是我們可以這樣來生成倒序播放的圖片:

from PIL import Image, ImageSequence
with Image.open('ani.gif') as im:
if im.is_animated:
frames = [f.copy() for f in ImageSequence.Iterator(im)]
frames.reverse() # 內(nèi)置列表倒序方法
# 將倒序后的所有幀圖像保存下來
frames[0].save('out.gif', save_all=True, append_images=frames[1:])

再來看一個(gè)比較明顯的效果:


為了滿足微信2M 圖片大小限制,倒序圖片經(jīng)過了采樣壓縮處理

如果想要達(dá)到鬼畜一些的效果,還可以對(duì)所有幀隨機(jī)打亂順序:

import random
# frames.reverse()
random.shuffle(frames)

效果如下:

以上所述是小編給大家介紹的用Python將動(dòng)態(tài)GIF圖片倒放播放的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 基于django傳遞數(shù)據(jù)到后端的例子

    基于django傳遞數(shù)據(jù)到后端的例子

    今天小編就為大家分享一篇基于django傳遞數(shù)據(jù)到后端的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 詳解Python中的多線程

    詳解Python中的多線程

    這篇文章主要介紹了Python中的多線程,線程就是進(jìn)程中一條執(zhí)行程序的執(zhí)行路徑,一個(gè)程序至少有一條執(zhí)行路徑,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • python3圖片文件批量重命名處理

    python3圖片文件批量重命名處理

    這篇文章主要為大家詳細(xì)介紹了Python3圖片文件批量重命名處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python 注釋:解釋和優(yōu)化代碼可讀性

    Python 注釋:解釋和優(yōu)化代碼可讀性

    本文將探討Python中注釋的重要性,以及如何通過注釋解釋和優(yōu)化代碼的可讀性,了解如何正確使用注釋可以提高代碼的可維護(hù)性和可理解性
    2023-09-09
  • python中的多線程實(shí)例教程

    python中的多線程實(shí)例教程

    這篇文章主要介紹了python中的多線程用法,包括線程的創(chuàng)建、同步等核心問題,具有很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • 對(duì)python指數(shù)、冪數(shù)擬合curve_fit詳解

    對(duì)python指數(shù)、冪數(shù)擬合curve_fit詳解

    今天小編就為大家分享一篇對(duì)python指數(shù)、冪數(shù)擬合curve_fit詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Django websocket原理及功能實(shí)現(xiàn)代碼

    Django websocket原理及功能實(shí)現(xiàn)代碼

    這篇文章主要介紹了Django websocket原理及功能實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python列表list內(nèi)建函數(shù)用法實(shí)例分析【insert、remove、index、pop等】

    Python列表list內(nèi)建函數(shù)用法實(shí)例分析【insert、remove、index、pop等】

    這篇文章主要介紹了Python列表list內(nèi)建函數(shù)用法,結(jié)合具體實(shí)例形式分析了list中insert、remove、index、pop等函數(shù)的功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07
  • Python中for循環(huán)語(yǔ)句實(shí)戰(zhàn)案例

    Python中for循環(huán)語(yǔ)句實(shí)戰(zhàn)案例

    這篇文章主要給大家介紹了關(guān)于Python中for循環(huán)語(yǔ)句的相關(guān)資料,python中for循環(huán)一般用來迭代字符串,列表,元組等,當(dāng)for循環(huán)用于迭代時(shí)不需要考慮循環(huán)次數(shù),循環(huán)次數(shù)由后面的對(duì)象長(zhǎng)度來決定,需要的朋友可以參考下
    2023-09-09
  • python基于paramiko將文件上傳到服務(wù)器代碼實(shí)現(xiàn)

    python基于paramiko將文件上傳到服務(wù)器代碼實(shí)現(xiàn)

    這篇文章主要介紹了python基于paramiko將文件上傳到服務(wù)器代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

泽州县| 胶南市| 兰溪市| 丽水市| 武功县| 东莞市| 客服| 邳州市| 尼玛县| 潍坊市| 兰州市| 香港 | 林甸县| 宁河县| 蕲春县| 灵宝市| 政和县| 清远市| 凤凰县| 万全县| 博罗县| 盈江县| 上栗县| 虞城县| 天津市| 澄迈县| 景泰县| 沂南县| 丁青县| 板桥市| 南川市| 内黄县| 绥芬河市| 宝清县| 普兰县| 克拉玛依市| 宝山区| 荃湾区| 哈巴河县| 洱源县| 南投县|