Python PIL 完全删除每个 alpha 通道
Python PIL remove every alpha channel completely
我努力尝试将 PNG 顺利转换为位图,但每次都失败了。
但现在我想我可能找到了一个理由。
这是因为 alpha 通道。
('feather' 在 Photoshop 中)
输入图像:
我预期的输出:
当前输出:
我想将它转换为 8 位位图并将每个不可见 (alpha) 像素着色为紫色 (#FF00FF) 并将它们设置为零点。 (第一个调色板)
但显然,背景区域和实际图像周围的不可见区域具有不同的颜色。
我希望所有颜色都与背景颜色相同。
我该怎么办?
这三个我都试过了
image = Image.open(file).convert('RGB')
image = Image.open(file)
image = image.convert('P')
pp = image.getpalette()
pp[0] = 255
pp[1] = 0
pp[2] = 255
image.putpalette(pp)
image = Image.open('feather.png')
result = image.quantize(colors=256, method=2)
第三种方法看起来更好,但是当我将它保存为位图时,它变得一样。
我现在只想把它弄完。我在这上面浪费了太多时间。
如果我从输出文件中删除背景,
看起来还是很别扭。
正如您所说,您的问题有点误导:-
I want to convert it to 8bit Bitmap and colour every invisible(alpha) pixels to purple(#FF00FF) and set them to dot zero. (very first palette)
但是在描述中你给出了一个没有 alpha 通道的输入图像。幸运的是,我看到了你之前的问题,因此我获得了包含alpha的图像(你在描述中提到的)但没有发布。
这是阿尔法的图像:-
现在我们必须在 P
模式下获得此图像的 .bmp
等价物。
from PIL import Image
image = Image.open(r"Image_loc")
new_img = Image.new("RGB", (image.size[0],image.size[1]), (255, 0, 255))
cmp_img = Image.composite(image, new_img, image).quantize(colors=256, method=2)
cmp_img.save("Destination_path.bmp")
输出图像:-
我努力尝试将 PNG 顺利转换为位图,但每次都失败了。
但现在我想我可能找到了一个理由。 这是因为 alpha 通道。 ('feather' 在 Photoshop 中)
输入图像:
我预期的输出:
当前输出:
我想将它转换为 8 位位图并将每个不可见 (alpha) 像素着色为紫色 (#FF00FF) 并将它们设置为零点。 (第一个调色板)
但显然,背景区域和实际图像周围的不可见区域具有不同的颜色。 我希望所有颜色都与背景颜色相同。 我该怎么办?
这三个我都试过了
image = Image.open(file).convert('RGB')
image = Image.open(file)
image = image.convert('P')
pp = image.getpalette()
pp[0] = 255
pp[1] = 0
pp[2] = 255
image.putpalette(pp)
image = Image.open('feather.png')
result = image.quantize(colors=256, method=2)
第三种方法看起来更好,但是当我将它保存为位图时,它变得一样。
我现在只想把它弄完。我在这上面浪费了太多时间。
如果我从输出文件中删除背景, 看起来还是很别扭。
正如您所说,您的问题有点误导:-
I want to convert it to 8bit Bitmap and colour every invisible(alpha) pixels to purple(#FF00FF) and set them to dot zero. (very first palette)
但是在描述中你给出了一个没有 alpha 通道的输入图像。幸运的是,我看到了你之前的问题
这是阿尔法的图像:-
现在我们必须在 P
模式下获得此图像的 .bmp
等价物。
from PIL import Image
image = Image.open(r"Image_loc")
new_img = Image.new("RGB", (image.size[0],image.size[1]), (255, 0, 255))
cmp_img = Image.composite(image, new_img, image).quantize(colors=256, method=2)
cmp_img.save("Destination_path.bmp")
输出图像:-