Текст, созданный Python PILLOW, находится в неправильном положении

Я работаю над сценарием python для создания вводимых данных для предварительно созданного изображения. Для этого я использую Python PILlon и разрабатываю для Windows 7.

Я борюсь с функцией draw.text (), в которой я ввожу позицию как (0,0). К сожалению, текст расположен на несколько пикселей вниз.

Во-первых, я подумал, что это моя ошибка, я поискал в Интернете и нашел страницу http://tools.jedutils.com/tools/center-text-image, где код для (центрированного, но проблема та же) изображения таков:

def create_image(font_name, font_size, font_color, width, height, back_ground_color, text, image_filter=None):

font  =  ImageFont.truetype ( font_path + font_name + ".ttf", font_size )

im  =  Image.new ( "RGB", (width,height), back_ground_color )
draw  =  ImageDraw.Draw ( im )
text_x, text_y = font.getsize(text)
x = (width - text_x)/2
y = (height - text_y)/2
draw.text ( (x,y), text, font=font, fill=font_color )

#if filter: #i don't need given filter
#    real_filter = filter_dict[image_filter]
#    im = im.filter(real_filter)
im.save ( "runaway_emboss.jpg" )

После выполнения этого кода я столкнулся с той же проблемой, что и с моим собственным скриптом. Позже я подумал, что это может быть проблема шрифта, поэтому я скопировал его из папки Windows Fonts в папку с файлом * .py, я попытался загрузить шрифты из Интернета. Результат был одинаковый.

Изображение проблемы:

Плохо: ПлохоХорошо:  Хорошо

Вы хоть представляете, в чем может быть источник проблемы?


person Jakub Mendyk    schedule 29.12.2013    source источник
comment
Возможно, это обман getize () ImageFont не получает правильный размер текста?. Это проблема шрифта, а не то, что Pillow делает неправильно.   -  person Martijn Pieters    schedule 30.12.2013