7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[備忘録] PythonのPILで透過GIFを作る時に後ろの画像を表示させない方法

Posted at

[備忘録]
PILにて透過画像からGIFを作成することが可能です。
その時に、何も設定をしないと、透過されているところが黒くなってしまいます。
その対策のために、マスクをかけます。

image = Image.new('test.png')
alpha = image.split()[3]

image = image.convert('RGB').convert('P', palette=Image.ADAPTIVE, colors=255)

mask = Image.eval(alpha, lambda a: 255 if a <= 128 else 0)

image.paste(255, mask=mask)

これらの画像から生成すると、画像が更新されると後ろに前の画像が表示されます。
対策としては、gifとして保存する時に、disposal=2にすることで対策が可能です。

image.save('new.gif', save_all=True, append_images=images, duration=100, loop=0, transparency=255, disposal=2)
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?