枕头将png转换为8位位图

Pillow convert png to 8bit bitmap

我尝试将 8 位 PNG 转换为 8 位(256 索引调色板)位图图像, 但是枕头一直呕吐糟糕的结果。

这是我试过的。

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(file)
image = image.convert('P')
image.save(blabla.bmp)

这就是我期望看到的结果。 这是一个实际的位图(由 Photoshop 完成。) Photoshop 这就是 Pillow 所做的: Pillow 这是什么笑话?! 它甚至被剪掉了 我应该怎么做才能正确转换它?

原图:

你可以这样做:

from PIL import Image

# Open image
image = Image.open('feather.png')

# Quantize to 256 colours using fast octree method
result = image.quantize(colors=256, method=2)