Я так старался плавно преобразовать PNG в растровое изображение, но каждый раз терпел неудачу.
но теперь я думаю, что мог бы найти причину.
это из-за альфа-каналов.
(«перышко» в фотошопе)
Входное изображение:
Вывод, который я ожидал:
Токовый выход:
Я хочу преобразовать его в 8-битное растровое изображение и закрасить все невидимые (альфа) пиксели в фиолетовый (# 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)
третий метод выглядит лучше, но он становится таким же, когда я сохраняю его как растровое изображение.
Я просто хочу покончить с этим сейчас. Я потратил слишком много времени на это.
если я удаляю фон из выходного файла,
это все еще выглядит неловко.