如何使用PIL(Python图像处理库)创建透明的gif(或png)?

42

我尝试使用PIL创建一个透明的gif。目前我有这个:

    from PIL import Image

    img = Image.new('RGBA', (100, 100), (255, 0, 0, 0))
    img.save("test.gif", "GIF", transparency=0)

到目前为止,我发现的所有内容都是关于操纵现有图像以调整其透明度设置或在另一个图像上覆盖透明图像。我只想创建一个透明的GIF(然后再绘制它)。

1个回答

65

以下脚本创建一个透明的 GIF 图片,并在中心绘制了一个红色圆形:

from PIL import Image, ImageDraw

img = Image.new('RGBA', (100, 100), (255, 0, 0, 0))

draw = ImageDraw.Draw(img)
draw.ellipse((25, 25, 75, 75), fill=(255, 0, 0))

img.save('test.gif', 'GIF', transparency=0)

并且对于PNG格式:

img.save('test.png', 'PNG')

4
只要在color参数中的第4个值(在这个例子中为(255, 0, 0, 0))设为0,图像就会完全透明 - 这是 alpha 通道的值。所有这些颜色应该都能正常工作:(255, 255, 255, 0)(0, 0, 0, 0)(100, 100, 100, 0) - RealA10N
1
对于动画GIF,我必须使用以下代码: https://gist.github.com/egocarib/ea022799cca8a102d14c54a22c45efe0 - HCLivess

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接