您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python如何對gif圖壓縮,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
最近寫了一篇CSDN博客需要上傳gif圖,發現大小超過了5M,無法上傳。
文件大小:
本想自己找個免費的壓縮工具,結果下載下來的工具不是釣魚工具就是流氓軟件,還有的在線壓縮工具說是免費,等你download的時候說是要付費,總之一大堆坑。
由于上面坑爹的經過,于是我自己試著找找python壓縮gif的辦法。
根據我的理解是可行的,因為gif的文件是根據一幀幀靜態圖片根據時序拼接起來的,如果使用python將gif文件分解成一幀幀靜態圖片的話,再將靜態圖片對象進行壓縮之后再合并,理論上是可以減小文件大小。
需要找到一個可以將gif文件分解成靜態圖像的庫,了解到PIL的ImageSequence可以將gif分解成一幀幀。
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
代碼很簡單
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)
mkvirtualenv GIF
pip install imageio
pip install pyinstaller
打包必備的庫
pyinstaller -F compress.py
可以看到壓縮之后圖片依然很清晰
壓縮率: 5356/1504 = 3.56
這個壓縮率已經非常高了
關于“python如何對gif圖壓縮”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。