Описание программы
Программа позволяет создавать растровые копии шрифтов, установленных на компьютере. Эти копии затем могут использоваться на мобильных телефонах в приложениях, использующих унифицированную библиотеку графических шрифтов (пока отдельно не распространяется, однако доступна в составе UniFM).
Интерфейс программы |
Программа может извлекать наборы символов,
По умолчанию копия шрифта сохраняется в домашней папке пользователя с именем файла, генерируемым программой, но его можно изменить вручную.
Скачать программу (Jar, 19 КБ)
Скачать исходный код (Zip, 87 КБ)
Структура копии шрифта
Растровая копия шрифта представляет собой ZIP архив (в общем случае может быть просто любая папка), содержащий собственно файлы с изображениями символов и файлы с описанием шрифта font.ini и font.bin. Последний является двоичным аналогом файла font.ini и служит для ускорения загрузки шрифта. Он не является обязательным, но в случае отсутствия будет воссоздан самой библиотекой на основе файла font.ini.
Файл font.ini представляет собой обычный текстовый файл. В начале этого файла должен содержаться заголовок следующего вида:
[Info]
Face = Arial
Size = 16
Ascent = 15
Descent = 4
Leading = 0
Здесь первые два параметра определяют "название" шрифта и его размер в пунктах. Далее, если для упрощения терминологии представить, что базовая линия шрифта - это линия, на которой "сидят" буквы, то Ascent - это расстояние, на которое буквы возвышаются над уровнем базовой линии, а Descent - насколько "свисают" "хвосты" букв под уровнем базовой линии. Таким образом, высота строки текста равна сумме значений Ascent и Descent. Параметр Leading задает дополнительное расстояние между двумя соседними строчками текста, то есть полная высота шрифта равна сумме всех трех значений Ascent, Descent и Leading.
Далее следуют блоки определений символов. Они имеют следующий вид:
[имя картинки с символами]
hex код символа в юникоде = координата x, координата y, ширина символа
Например:
[1.png]
410 = 0, 0, 11
411 = 17, 0, 11
412 = 34, 0, 11
413 = 51, 0, 9
414 = 68, 0, 11
420 = 0, 19, 11
421 = 17, 19, 12
422 = 34, 19, 9
Количество таких блоков может быть любым, но должен присутствовать хотя бы один блок. Аналогично, количество определяемых символов в каждом блоке может быть любым, но в каждом должен быть определен хотя бы один символ.
Изображения с символами могут быть в любом формате, но желательно использовать формат, предусматривающий сжатие без потерь, например PNG. Изображения могут находиться в папке шрифта или в ее подпапках, в последнем случае следует использовать относительные пути и прямой слеш в качестве разделителя.
При выводе символов на экран яркость исходного изображения преобразуется в прозрачность конечного изображения, при этом черный цвет соответствует полностью прозрачным участкам, и белый цвет соответствует полностью непрозрачным участкам. Таким образом, оптимальным для формирования изображений шрифта является случай белых букв на черном фоне. Для таких изображений цвет не существенен и достаточно градаций серого для шрифтов со сглаживанием, для шрифтов без сглаживания достаточно двухцветного черно-белого изображения.