Я пытаюсь нарисовать текст на изображениях с помощью PIL.Тем не менее, я могу видеть текст только на определенных изображениях.Многие png не работают, такие как этот:
http://r0k.us/graphics/kodak/kodim16.html
Пример кода:
import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
from os.path import expanduser
im1=Image.open(expanduser('~/Desktop/in.png'))
# Drawing the text on the picture
font = ImageFont.truetype('/Library/Fonts/Songti.ttc', 100)
draw = ImageDraw.Draw(im1)
draw.text((50, 600), 'OMG!', fill="#aa0000", font=font)
draw = ImageDraw.Draw(im1)
# Save the image with a new name
im1.save(expanduser('~/Desktop/out.png'))
Я пытался добавить .convert("RGBA")
ииспользуя RGB для цвета, безрезультатно.
Код работает на фотографиях, сделанных с моего iPhone.Но когда я использую ImageMagick
для преобразования этих фотографий iPhone в .jpg или .png, код снова перестает работать.
Неужели эта функция рисования текста работает только на определенных форматах изображений?
ОБНОВЛЕНИЕ
Я добавил фактическую текстовую позицию к вызову .text()
.Код работает на .png, взятом с iPhone.