Подушка конвертировать PNG в 8 бит - PullRequest
1 голос
/ 28 июня 2019

Я пытался преобразовать 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 и вот что сделала Подушка: Подушка что это за шутка ?! и это даже было вырезано что я должен сделать, чтобы преобразовать это правильно?

Исходное изображение:

enter image description here

1 Ответ

1 голос
/ 28 июня 2019

Вы можете сделать это так:

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)

enter image description here

...