Python PIL: Как заполнить изображение таким логотипом? - PullRequest
4 голосов
/ 06 июля 2011

Мне нужно защитить свои фотографии, заполнив их логотипами об авторских правах.Моя ОС - Ubuntu 10.10 и Python 2.6.Я намерен использовать PIL .

Предполагается, что у меня есть такой логотип об авторских правах ( Вы можете легко сделать это в Photoshop ):

water mark logo

и изображение, подобное этому:

Original Picture

Я хочу использовать PIL для получения защищенных авторским правом изображений, как показано ниже (Заполните исходное изображение рисунком):

Copyrighted Picture

и окончательный результат путем изменения непрозрачности логотипов:

Final Result

Есть ли какая-либо функция в PIL, которая может сделать это?Любой намек?

Большое спасибо!

1 Ответ

6 голосов
/ 06 июля 2011

PIL, безусловно, способен на это.Сначала вы захотите создать изображение, содержащее повторяющийся текст.Это должно быть, может быть, вдвое больше размера изображения, которое вы хотите сделать водяным знаком (так как вам нужно повернуть его, а затем обрезать).Вы можете использовать Image.new() для создания такого изображения, затем ImageDraw.Draw.text() в цикле для многократного наложения текста на него и метод изображения rotate() для его поворота на 15 градусов или около того.Затем обрежьте его до размера исходного изображения, используя метод изображения crop().

Чтобы сначала объединить его, вам нужно будет использовать ImageChops.multiply() для наложения водяного знака на копию исходного изображения(который будет иметь непрозрачность 100%), затем ImageChops.blend(), чтобы смешать копию с водяным знаком и оригинальное изображение с желаемой непрозрачностью.

Это должно дать вам достаточно информации, чтобы начать работу - если вы столкнетеськонтрольно-пропускной пункт, почтовый индекс, показывающий, что у вас есть до сих пор, и задать конкретный вопрос о том, с чем у вас возникли трудности.

...