如何用PIL(python-imaging)创建透明的gif(或png)

gra*_*atz 21 python transparency imaging gif python-imaging-library

试图用PIL 创建一个透明的gif.到目前为止我有这个:

    from PIL import Image

    img = Image.new('RGBA', (100, 100), (255, 0, 0, 0))
    img.save("test.gif", "GIF", transparency=0)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现的一切都是指操纵现有图像来调整透明度设置或将透明图像叠加到另一个上.我只想创建一个透明的GIF(然后绘制).

ekh*_*oro 35

以下脚本创建一个透明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)
Run Code Online (Sandbox Code Playgroud)

和PNG格式:

img.save('test.png', 'PNG')
Run Code Online (Sandbox Code Playgroud)

  • 只要“color”参数中的第四个值(在本例中为“(255, 0, 0, 0)”)设置为“0”,图像将完全透明 - 这是 alpha 通道的值。所有这些都应该完全相同:“(255, 255, 255, 0)”,“(0, 0, 0, 0)”,“(100, 100, 100, 0)” (2认同)