Python 将非透明图像转换为透明GIF图像PIL

Python 将非透明图像转换为透明GIF图像PIL,python,image,python-imaging-library,transparency,Python,Image,Python Imaging Library,Transparency,如何使用PIL将非透明PNG文件转换为透明GIF文件 我的海龟图形游戏需要它。我似乎只能透明化PNG文件,而不是GIF文件。至少对我来说,你应该如何做到这一点并不明显!对于一个不存在的问题,这可能是一个不必要的解决方法,因为我不知道PIL在内部是如何工作的 不管怎样,我用这个输入图像处理它已经够久了: 当我来到这里,PNG工作,GIF是“不快乐” PNG如下: “不快乐”GIF如下: 下面是我如何设置GIF的: # Extract the alpha channel alpha = im.

如何使用PIL将非透明PNG文件转换为透明GIF文件


我的海龟图形游戏需要它。我似乎只能透明化PNG文件,而不是GIF文件。

至少对我来说,你应该如何做到这一点并不明显!对于一个不存在的问题,这可能是一个不必要的解决方法,因为我不知道PIL在内部是如何工作的

不管怎样,我用这个输入图像处理它已经够久了:

当我来到这里,PNG工作,GIF是“不快乐”

PNG如下:

“不快乐”GIF如下:

下面是我如何设置GIF的:

# Extract the alpha channel
alpha = im.split()[3]

# Palettize original image leaving last colour free for transparency index
im = im.convert('RGB').convert('P', palette=Image.ADAPTIVE, colors=255)

# Put 255 everywhere in image where we want transparency
im.paste(255, ImageOps.invert(alpha))
im.save('result.gif', transparency=255)

关键词:Python、图像处理、PIL、枕头、GIF、透明度、alpha、保留、透明索引

# Extract the alpha channel
alpha = im.split()[3]

# Palettize original image leaving last colour free for transparency index
im = im.convert('RGB').convert('P', palette=Image.ADAPTIVE, colors=255)

# Put 255 everywhere in image where we want transparency
im.paste(255, ImageOps.invert(alpha))
im.save('result.gif', transparency=255)