一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python對(duì)gif圖壓縮的完美解決方案

python對(duì)gif圖壓縮的完美解決方案

2022-02-23 00:07Rambo.Fan Python

上圖圖片的時(shí)候由于圖片太大,導(dǎo)致上次不成功,因此需要對(duì)文件進(jìn)行統(tǒng)一壓縮,這篇文章主要給大家介紹了關(guān)于python對(duì)gif圖壓縮的完美解決方案,需要的朋友可以參考下

 

1. 背景:

最近寫了一篇CSDN博客需要上傳gif圖,發(fā)現(xiàn)大小超過了5M,無法上傳。

文件大小:

python對(duì)gif圖壓縮的完美解決方案

python對(duì)gif圖壓縮的完美解決方案

本想自己找個(gè)免費(fèi)的壓縮工具,結(jié)果下載下來的工具不是釣魚工具就是流氓軟件,還有的在線壓縮工具說是免費(fèi),等你download的時(shí)候說是要付費(fèi),總之一大堆坑。

 

2.尋找解決辦法

由于上面坑爹的經(jīng)過,于是我自己試著找找python壓縮gif的辦法。

 

2.1可行性分析

根據(jù)我的理解是可行的,因?yàn)間if的文件是根據(jù)一幀幀靜態(tài)圖片根據(jù)時(shí)序拼接起來的,如果使用python將gif文件分解成一幀幀靜態(tài)圖片的話,再將靜態(tài)圖片對(duì)象進(jìn)行壓縮之后再合并,理論上是可以減小文件大小。

 

3.問題分解

 

3.1將gif文件分解

需要找到一個(gè)可以將gif文件分解成靜態(tài)圖像的庫,了解到PIL的ImageSequence可以將gif分解成一幀幀。

 

3.1.1示例代碼

from PIL import Image, ImageSequence
filename = "2018-0.gif"
gif = Image.open(filename)
index = 0
for frame in ImageSequence.Iterator(gif):
	#frame.convert("RGB")
	frame.save(str(index)+".png")#pass
	index += 1

 

3.1.2 效果圖

python對(duì)gif圖壓縮的完美解決方案

 

4.代碼優(yōu)化

代碼很簡單

import imageio
from PIL import Image, ImageSequence

def compressGif(filename):
    gif = Image.open(filename)
    if not gif.is_animated:
        return False
    imageio.mimsave("compress-"+filename, [frame.convert("RGB") for frame in ImageSequence.Iterator(gif)], duration = gif.info["duration"]/2000) 

fileList = ["2018-0.gif","2018-1.gif","2018-2.gif","2018-3.gif","2018-4.gif"]
for filename in fileList:
    compressGif(filename)

 

5.做成一個(gè)通用工具

 

5.1創(chuàng)建一個(gè)虛擬環(huán)境

mkvirtualenv GIF

python對(duì)gif圖壓縮的完美解決方案

 

5.2虛擬環(huán)境安裝必要庫

pip install imageio

pip install pyinstaller 打包必備的庫

 

5.3打包

pyinstaller -F compress.py

python對(duì)gif圖壓縮的完美解決方案

 

5.4把.gif文件放到compress.exe文件夾下

python對(duì)gif圖壓縮的完美解決方案

 

5.5雙擊.exe查看打包效果

python對(duì)gif圖壓縮的完美解決方案

 

5.6壓縮后的圖片效果

可以看到壓縮之后圖片依然很清晰

壓縮率: 5356/1504 = 3.56

這個(gè)壓縮率已經(jīng)非常高了

python對(duì)gif圖壓縮的完美解決方案

 

總結(jié)

到此這篇關(guān)于python對(duì)gif圖壓縮的完美解決方案的文章就介紹到這了,更多相關(guān)python對(duì)gif圖壓縮內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/qq_37608398/article/details/120943977

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲无总热门 | 四虎精品在线视频 | 久久精品在现线观看免费15 | 合欢视频免费 | 久久久久伊人 | 特大黑人娇小亚洲女mp4 | 4hu影院在线观看 | 国产盗摄wc厕所撒尿视频 | 天码毛片一区二区三区入口 | 2019男人天堂 | x8x8在线观看 | 亚洲精品视 | 男女男在线精品网站免费观看 | 奇米777狠狠 | 国产精品va在线观看不 | 亚洲黄色免费在线观看 | 日韩欧美在线视频一区二区 | 欧美日韩一区二区综合在线视频 | 欧美涩区 | 91桃色污| 欧美一级欧美三级在线 | 俄罗斯一级大片 | 91色+91sesex| 国产精品视频免费看 | 爱情岛论坛亚洲品质自拍视频 | 亚洲电影成人 成人影院 | 免费网址在线观看入口推荐 | 18韩国美女vip视频7 | 亚洲国产成人在人网站天堂 | 国产高清在线精品一区 | 日本哺乳期网站xxxx | 人与动人物人a级特片 | 免费片在线观看高清 | www.在线观看视频 | 亚洲精品免费观看 | 亚洲 欧美 中文 日韩 另类 | 美女脱了内裤打开腿让你桶爽 | 亚洲欧美在线观看一区二区 | 国产精品nv在线观看 | 91制片厂制作果冻传媒123 | 亚洲无线一二三四区 |