基于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、压缩之后的图片
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、压缩之后的图片
相关文章推荐
- 基于PHP实现等比压缩图片大小
- Python实现更改图片尺寸大小的方法(基于Pillow包)
- python脚本编程:批量压缩图片大小
- Python实现更改图片尺寸大小的方法(基于Pillow包)
- 1.Selenium2 自动化测试实战-基于Python语言-设置窗口大小、调用JS调整滚动条、截取图片
- 基于Python查看SVD压缩图片的效果
- 录屏——制作gif图片——压缩图片大小
- 基于PHP实现等比压缩图片大小
- iOS开发技巧之:图片压缩成指定的大小
- DevExpress PictrueEdit 实现图片 剪裁 , 缩放 , 压缩大小 效果
- IOS图片压缩(修改图片大小)
- 图片批量压缩大小脚本分享
- 能分析压缩的日志,且基于文件输入的PYTHON代码实现
- C# 等比压缩图片,返回固定大小并居中
- Python实现批量压缩图片
- 三种Android图片压缩方法 压缩到指定大小
- Java实现图片压缩代码,图片大小转换
- 图片压缩 java 压缩 JPG JPEG PNG GIF
- 图片处理之-Bitmap.Config,jpeg压缩与大小
- 图片压缩。大小压缩