Python使用imageio合成20张PNG后的GIF后图片大小为10M,请问怎么减小图片体积?

Python使用imageio合成20张PNG后的GIF后图片大小为10M,请问怎么减小图片体积?

问题描述:

img_paths = picurl_list
gif_images = []
for path in img_paths:
    gif_images.append(imageio.imread(path))
imageio.mimsave("test.gif", gif_images, fps=2.5)

通过网页链接获取10-20张图片,然后合成GIF,但是图片太大了,有10M(大概20张png合成的),该怎么处理以减小图片大小呢?感觉1-3M合适

通过折帧,改变fps

 
import imageio
import numpy as np
img_paths = picurl_list
gif_images = []
c=0
for path in img_paths:
    c+=1
    if c%2:
        bb=[]
        aa=imageio.imread(path)
        cc=0
        for i in range(len(aa)):
            cc+=1
            if cc%3:
                t=[]
                ccc=0
                for j in range(len(aa[0])):
                    ccc+=1
                    if ccc%3:
                    t.append(aa[i][j])
                bb.append(t)
          gif_images.append(bb.copy())
imageio.mimsave("test.gif", gif_images, fps=5)


from PIL import Image

# 只可接收 jpg 和 png 的图片
# 图片不加绝对路径会在当前文件下的目录下找图片
def zip_img_size(img_path, img_quality):
    img = Image.open(img_path)

    img_suffix = img_path[-3:]

    changed_img_name = img_path[:-4] + '_q.' + img_suffix

    if img_suffix == 'jpg':
        img_suffix = "JPEG"
    else:
        img_suffix = 'PNG'
    # quality 范围在 0-100, 0为最差的
    img.save(changed_img_name,  img_suffix, quality=img_quality)
    print("Image saved in " + changed_img_name)

# 例:当前目录下有这张图片,大小为 80.6 KB
# 压缩后大小变为 12.8 KB
zip_img_size('testimg.jpg', 50)