利用Python實(shí)現(xiàn)無(wú)損GIF動(dòng)圖的制作
先講一講整理的目標(biāo)
1.挑選喜歡的照片用python制作GIF圖
2.動(dòng)圖太大了,對(duì)它無(wú)損壓縮
生成gif圖
調(diào)用python庫(kù)imageio可以輕松實(shí)現(xiàn)
讀取靜態(tài)圖到列表中 ,作為 GIF 動(dòng)圖的每一幀
設(shè)置每一幀間隔時(shí)間duration,我設(shè)置為1.15秒
調(diào)用imageio庫(kù)的函數(shù)imageio.mimsave即可
實(shí)現(xiàn)代碼
import imageio def create_gif(image_list, gif_name, duration=0.35): frames = [] for image_name in image_list: frames.append(imageio.imread(image_name)) imageio.mimsave(gif_name, frames, 'GIF', duration=duration) return def main(): image_list = ['car/10.jpg','car/15.jpg','car/8.jpg',] gif_name = 'car/car.gif' duration = 1.15 create_gif(image_list, gif_name, duration) if __name__ == '__main__': main()
效果如下圖所示
By the way
我原來(lái)制作GIF用的是軟件ScreenToGif,它錄制出來(lái)的動(dòng)圖真大,編輯有些卡頓,不用它了
無(wú)損壓縮
前面的GIF動(dòng)圖是壓縮后的,只有3M多,原大小接近50MB。
如果不壓縮,小伙伴們需要浪費(fèi)50M的流量下載。
資源是可貴的,先用收藏的網(wǎng)頁(yè)壓縮試下
壓縮之后仍有20多M,質(zhì)量有損失,且沒(méi)有壓縮比參數(shù)可選。
還是python好,有免費(fèi)的模塊,省去網(wǎng)上找這些要注冊(cè)的資源
使用ImageIo 和PIL庫(kù),對(duì)gif動(dòng)圖進(jìn)行壓縮處理,先導(dǎo)入
import imageio from PIL import Image, ImageSequence
設(shè)置壓縮尺寸,這里設(shè)置壓縮尺寸為1000
rp = 1000
50M壓縮之后大小降到4M,如果設(shè)置為500,壓縮完不到1M
接下來(lái)的代碼如下
img_list = [] # 讀取原gif動(dòng)圖 img = Image.open("car/car.gif") # 對(duì)原動(dòng)圖進(jìn)行壓縮,并存入img_list for i in ImageSequence.Iterator(img): i = i.convert('RGB') if max(i.size[0], i.size[1]) > rp: i.thumbnail((rp, rp)) img_list.append(i) # 計(jì)算幀的頻率 durt = (img.info)['duration'] / 1000 # 讀取img_list合成新的gif imageio.mimsave('car/car1.gif', img_list, duration=durt )
壓縮完成后,就是3.51MB,這縮小的不是一點(diǎn)點(diǎn),而且無(wú)損展示
到此這篇關(guān)于利用Python實(shí)現(xiàn)無(wú)損GIF動(dòng)圖的制作的文章就介紹到這了,更多相關(guān)Python制作無(wú)損GIF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Keras中 ImageDataGenerator函數(shù)的參數(shù)用法
這篇文章主要介紹了Keras中 ImageDataGenerator函數(shù)的參數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07python爬蟲(chóng)項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn)
這篇文章主要介紹了python爬蟲(chóng)項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07face++與python實(shí)現(xiàn)人臉識(shí)別簽到(考勤)功能
這篇文章主要為大家詳細(xì)介紹了face++與python實(shí)現(xiàn)人臉識(shí)別簽到(考勤)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-081行Python代碼實(shí)現(xiàn)去除圖片水印詳解
這篇文章主要為大家介紹了1行Python代碼實(shí)現(xiàn)去除圖片水印詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03對(duì)python3中的RE(正則表達(dá)式)-詳細(xì)總結(jié)
今天小編就為大家分享一篇對(duì)python3中的RE(正則表達(dá)式)-詳細(xì)總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python中關(guān)于浮點(diǎn)數(shù)的冷知識(shí)
這篇文章主要給大家介紹了Python中關(guān)于浮點(diǎn)數(shù)的冷知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09python編程PyAutoGUI庫(kù)使用與安裝簡(jiǎn)介
這篇文章主要為大家介紹了python編程中PyAutoGUI庫(kù)的使用與安裝簡(jiǎn)單介紹,文中含有視頻詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10詳解Pytorch 使用Pytorch擬合多項(xiàng)式(多項(xiàng)式回歸)
這篇文章主要介紹了詳解Pytorch 使用Pytorch擬合多項(xiàng)式(多項(xiàng)式回歸),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python編程之string相關(guān)操作實(shí)例詳解
這篇文章主要介紹了Python編程之string相關(guān)操作,結(jié)合實(shí)例形式分析了Python字符串相關(guān)函數(shù)與常見(jiàn)操作技巧,需要的朋友可以參考下2017-07-07