枕头如何优化GIF图像的透明度?

时间:2020-02-29 19:27:07

标签: python python-imaging-library image-manipulation animated-gif

我使用Pillow创建了一个GIF动画图片,这是一个倒计时计时器。

当我检查生成图像的各个帧时,每个后续帧都有一些透明区域,但是,每次生成GIF时,我都会附加整个图像。

frame1:
enter image description here
frame2:
enter image description here
frame3:
enter image description here

此优化很好,因为它可以减小图像的大小,但是我想知道此透明度优化是在什么基础上完成的。

用于生成图像的代码示例:

  frames = []
  fnt = ImageFont.truetype('Assets/myfont.ttf',32)
  b = Image.open('Assets/pallet.png')
  b = b.convert(mode='RGBA',palette=Image.ADAPTIVE)
  draw = ImageDraw.Draw(b)
  draw.text((225,31), "10", fill=(255,255,255,255), font=fnt)
  draw.text((288,31), "10", fill=(255,255,255,255), font=fnt)
  draw.text((353,31), "10", fill=(255,255,255,255), font=fnt)
  bref = b.copy()
  draw.text((412,31), "59", fill=(255,255,255), font=fnt)
  frames.append(b)
  for i in range(58, 0, -1):
    copyf = bref.copy()
    df = ImageDraw.Draw(copyf)
    df.text((412,31),str(i), fill=(255,255,255), font=fnt)
    frames.append(copyf)

  f = BytesIO()
  frames[0].save(f, format='GIF', save_all=True,append_images=frames[1:], duration=1000, loop=0)

0 个答案:

没有答案