我竭尽全力将PNG顺利转换为位图,但每次都失败。
但是现在我想我可能找到了一个原因。 这是因为有Alpha通道。 (在Photoshop中为“羽毛”)
输入图像:
我期望的输出:
当前输出:
我想将其转换为8位位图,并将每个不可见(alpha)像素上色为紫色(#FF00FF),并将它们设置为零点。 (第一个调色板)
但是显然,实际图像周围的背景区域和不可见区域具有不同的颜色。 我希望所有这些颜色与背景相同。 我该怎么办?
我尝试了这三个
var cartTotal = parseInt(sessionStorage.getItem("cartTotal"));
第三种方法看起来更好,但是当我将其另存为位图时,它变得相同。
我只想现在就解决它。我在此上浪费了太多时间。
如果我从输出文件中删除背景, 看起来还是很尴尬。
答案 0 :(得分:0)
您所说的问题有点令人误解:-
我想将其转换为8位位图,并将每个不可见(alpha)像素上色为紫色(#FF00FF),并将它们设置为零点。 (第一个调色板)
但是在描述中,您给出了没有alpha通道的输入图像。幸运的是,我已经看到了您先前的问题Convert PNG to 8 bit bitmap,因此我获得了包含alpha(您在说明中提到的图片)的图片,但没有发布。
这里是阿尔法的形象:-
现在,我们必须以.bmp
模式获得与此图像等效的P
。
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")
输出图像:-