создание идентичных пикселям изображений текста между Sun Java и OpenJDK - PullRequest
2 голосов
/ 05 мая 2010

Мой скрипт выпуска выпускает изображения с номером версии, чтобы избавить меня от необходимости вручную заходить в программу MoinMoin wiki и менять ее вручную для каждого выпуска. К сожалению, поскольку шрифты выглядят немного по-разному в JVM каждой платформы, в результате получается некрасиво .

Я решил проблему несоответствия шрифтов с помощью Lucide Sans (поставляется с каждой системой Java). (Загрузка шрифтов из файлов TTF - это еще один вариант.) Результат гораздо лучше, поскольку в Mac / Windows создается точно такое же изображение (http://img718.imageshack.us/img718/9089/winq.png),, но немного отличается в OpenJDK (http://img441.imageshack.us/img441/4247/openjdk.png).

)

Я полагаю, что это вызвано тем, что OpenJDK имеет другой шрифт , отрисовывающий систему (в отличие от разных шрифтов). Есть ли способ заставить все три мои целевые платформы (Sun Windows, Mac, OpenJDK Linux) создавать изображения текста, которые выглядят одинаково?

[Обновление: уродливая ссылка больше не уродлива, так как я исправляю вещи вручную, пока не найду автоматическое решение]

1 Ответ

2 голосов
/ 09 мая 2010

OpenJDK использует библиотеку рендеринга шрифтов системы, поэтому вы можете даже не получить одинаковый рендеринг шрифтов в разных дистрибутивах или версиях Linux.

Кроме того, вы даже не можете предположить, что Lucida Sans доступна, потому что OpenJDK не устанавливает его, он только в Sun JDK.

Единственное решение состоит в том, чтобы развернуть свой собственный OpenJDK на платформах Windows и Mac и убедиться, что он по-прежнему использует Freetype вместо библиотеки рендеринга шрифтов платформы. Но это не осуществимо.

...