背景:
前两天看到一张很有意思的图片,想转发到wx,但是wx只支持1M内的gif图片,所以,想用代码把原图压缩一下。网上在线压缩效果并不理想(要花钱),所以还是自己手动来吧!
准备:
python3.6+
依赖包:
pip install PIL
功能代码:
import imageio
from PIL import Image, ImageSequence
# 自定义压缩尺寸 rp*rp
rp = 150
# 图片缓存空间
image_list = []
# 读取gif图片
im = Image.open("11.gif")
# 提取每一帧,并对其进行压缩,存入image_list
for frame in ImageSequence.Iterator(im):
frame = frame.convert('RGB')
if max(frame.size[0], frame.size[1]) > rp:
frame.thumbnail((rp, rp))
image_list.append(frame)
# 计算帧之间的频率,间隔毫秒
duration = (im.info)['duration'] / 1000
# 读取image_list合并成gif
imageio.mimsave('c001.gif', image_list, duration=duration)
测试:
先找到一张测试gif图片:11.gif (自己随便找一