есть ли способ использовать im.putpixel, а не im.paste

srcImage.paste (буквы ['H'], (10,15))

Приведенный выше код вставит букву H в изображение (srcimage). письма - это dict, который содержит изображения шрифтов. Я не могу использовать вставку в своем задании, но я могу использовать getpixel, load, putpixel и save. Я пробовал это, но это дает ошибку:

srcImage.putpixel((10,15),буквы['H'])

Ошибка:

Файл "C:\Users\Naveen\Desktop\a1\a1_template.py", строка 23, в doLOLImage srcImage.putpixel((10,15),letters['H']) Файл "C:\Python26\lib\site -packages\PIL\Image.py", строка 1267, в putpixel
return self.im.putpixel(xy, value)
SystemError: формат getargs нового стиля, но аргумент не является кортежем

не могли бы вы предоставить мне, как сделать эту функцию вставки, используя только getpixel, putpixel, load и save.


person nman84    schedule 25.08.2010    source источник
comment
Вы получаете ошибку, потому что letters['H'] не является целым числом или кортежем целых чисел. putpixel обращается только к одному пикселю изображения.   -  person Turion    schedule 16.05.2012


Ответы (1)


Я не знаком с PIL и деталями вашего задания, поэтому это будет псевдокод:

for every pixel in letter['H']:
    putpixel (at position + position in letter['H'])

По сути, получите каждый пиксель и его позицию в букве и поместите этот пиксель в изображение в позицию, в которой вы сейчас находитесь, плюс позицию пикселя в букве. (думая сверху слева) — другими словами, копировать изображение (буква ['H']) попиксельно.

person Stefano Palazzo    schedule 29.08.2010