Прозрачность считается черной в окнах и в программе - PullRequest
1 голос
/ 21 апреля 2011

Я использую библиотеку Python PIL, чтобы выполнить некоторое копирование с одного изображения на другое. У меня это работало вчера, но внезапно, когда я перезагружал свой компьютер, программа считает прозрачность черным, а также вставленное изображение использует палитру вставляемого изображения. Надеюсь, это не слишком смущает .. Вот мой код

import Image
imagein = Image.open("ramza.png")
imagein.show()
x, y, w, h = (0, 0, 128, 128)
box = (x, y, x + w, y + h)
region = imagein.crop(box)
imageout = Image.open("Template.png")
imageout.show()
imageout.paste(region, box)
imageout.show()
imageout.save("fn.png")

1 Ответ

0 голосов
/ 21 апреля 2011

Чтобы убедиться, что ваша вставленная область смешана с изображением шаблона с использованием альфа-слоя региона, используйте ключевой аргумент mask и используйте изображение региона в качестве маски.Он будет автоматически использовать альфа-слой для смешивания.

Вот код:

import Image
imagein = Image.open("png-transparency.png")
x, y, w, h = (0, 0, 128, 128)
box = (x, y, x + w, y + h)
region = imagein.crop(box)
imageout = Image.open("bigtest1.jpg").convert('RGBA')
imageout.paste(region, box, mask=region)
imageout.save("fn.png")

Я не знаю, как поступить с вашим вопросом палитры.Возможно, вы могли бы опубликовать несколько образцов изображений с разными палитрами, которые демонстрируют проблему?

...