PIL не отображает шрифты одинаково на разных машинах - PullRequest
2 голосов
/ 20 сентября 2009

Я написал некоторый код, который выплевывает изображение. Код, запущенный на моей локальной машине, выдает следующее изображение:

местный http://img32.yfrog.com/img32/9476/local.png

и на моем веб-хосте это выглядит так:

хост http://img32.imageshack.us/img32/858/hoste.png

Как видите, они разные. Верх намного приятнее. Оба используют один и тот же код и один и тот же файл шрифтов (VeraMoBd.ttf), одну и ту же версию PIL (1.1.6) и одну и ту же версию Python (2.6).

Я гуглил, и, похоже, нет каких-либо глобальных настроек, связанных с тем, как PIL отображает шрифты ... Что может вызывать разные результаты?

1 Ответ

4 голосов
/ 20 сентября 2009

Я бы предположил , что верхнее изображение было визуализировано с включенной виртуальной машиной с байт-кодом хинтинга TrueType, где нижняя часть использовала только автоподсказку FreeType. (Лично я предпочитаю низ!)

К сожалению, существует патент на программное обеспечение , из-за которого функция байт-кода хинтинга доступна не во всех двоичных сборках. Вот почему это не простая функция во время выполнения, которую вы можете включать и отключать, а то, что решается во время компиляции. Если вы компилируете свою собственную копию FreeType, вы можете включить эту функцию, установив #define с флагом TT_CONFIG_OPTION_BYTECODE_INTERPRETER в config/ftoption.h - если ваш адвокат считает, что это хорошая идея.

...