отсечение шрифтов с PIL

Это изображение было создано с PIL. Посмотрите, как g's и y's отключены в этом изображении? Как я могу предотвратить это?

http://img109.imageshack.us/img109/8874/screenshotep.png

Код, который создал это изображение, довольно прямой (сокращенный):

import Image, ImageDraw, ImageFont

im = Image.new("RGBA", (200, 200), 'white')
draw = ImageDraw.Draw(im)

font = ImageFont.truetype("VeraSe.ttf", 12)

draw.text(
           (1, 1),
           " %s: " % "ggjyfFwe__",
           font=font,
           fill='black'
)

draw.text(
           (1, 30),
           " %s" % 15,
           font=font,
           fill='black'
)

im.show()

Я попробовал его несколькими различными шрифтами, и это всегда отсекается. Удивление; y, googleing "шрифт PIL, отсекающий", возвращает очень немного полезных хитов... Я использую Python 2.6.4 и PIL 1.1.6 на Ubuntu 9.10

6
задан Charles Merriam 19 December 2018 в 21:35
поделиться

1 ответ

Мое предложение, прежде чем вы создадите объект изображения, чтобы получить требуемый размер для текста.

Это делается с помощью шрифта . getize("text") (документация).

В скрипте для создания изображения, который я сделал, я сначала нашел максимальную высоту одной строки текста, вызвав эквивалент font.getsize("Åj") (Если вам нужен только US-ASCII, вы можете найти высоту "Aj" вместо этого). Затем я вычислил требуемую высоту изображения и смещения линий, включая поля и интервал между линиями.

.
0
ответ дан 17 December 2019 в 18:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: