您的位置:首页 > 编程语言 > Python开发

基于python压缩gif图片大小。

2018-03-02 15:11 756 查看
使用PIL、imageio,将gif拆帧、压缩、合成。博主使用的是PyCharm工具。
1、安装imageio。File-->Settings-->Project:pro-->Project Interpreter-->点击 右上角的“+”搜索“imageio”安装。

2、提取gif每一帧并保存jpg格式,这里使用.convert('RGB')是因为frame.save不能保存png格式的图片,下同。def getFrames(im):
#非动画
if False == im.is_animated :
return;
index = 1
for frame in ImageSequence.Iterator(im):
frame = frame.convert('RGB')
frame.save("g%d.jpg" % index)
compressImg('g%d.jpg'% index)
index = index + 1
return index3、压缩图片。def compressImg(ImgName):
im = Image.open(ImgName)
im.convert('RGB')
if max(im.size[0], im.size[1]) > 128:
im.thumbnail((128, 128))
im.save('f-'+ImgName, quality=50)
return 'OK'4、将之前拆开的jpg文件合成gif。def compressGif(ind,dur):
images = []
for i in range(1, ind):
images.append(imageio.imread('f-g%d.jpg' % i))
imageio.mimsave('c001.gif', images, duration = dur)5、计算帧之间的频率,获取到的是毫秒,duration是秒,所以除以1000。def calDuration(im):
return (im.info)['duration']/10006、移除图片。def removeImg(ind):
for i in range(1,ind):
af = 'f-g' + str(i) + '.jpg'
f = 'g' + str(i) + '.jpg'
if os.path.exists(af):
os.remove(af)
if os.path.exists(f):
os.remove(f)7、压缩之前的图片


8、压缩之后的图片



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python gif压缩