Это изображение было создано с 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
Мое предложение, прежде чем вы создадите объект изображения, чтобы получить требуемый размер для текста.
Это делается с помощью шрифта . getize("text")
(документация).
В скрипте для создания изображения, который я сделал, я сначала нашел максимальную высоту одной строки текста, вызвав эквивалент font.getsize("Åj")
(Если вам нужен только US-ASCII, вы можете найти высоту "Aj"
вместо этого). Затем я вычислил требуемую высоту изображения и смещения линий, включая поля и интервал между линиями.