User Tools

Site Tools


hidensityfonttools

Как работать с новыми шрифтами? Перечислим средства для разработки.

  • Fextract Сергея Вакуленко. http://www.vak.ru/pub/palm/fextract13.zip . Инструмент для декомпиляции чужих шрифтов. Единственное замечание - программа забывает добавить в конец получаемого исходного файла отсутствующий глиф.
  • Pilrc. Компилятор ресурсов, в том числе шрифтов из текстового формата. Я рекомендую взять откомпилированную бету 3.0, которая поддерживает новые шрифты лучше, чем существующая стабильная версия 2.9. http://yahm.palmoid.com/pilrc.zip
  • Par. http://www.djw.org/product/palm/par/ . Замечательный инструмент для работы с пальмовыми базами на десктопе.
  • Любой стандартный редактор старых шрифтов.
  • PalmFontConv от Александр Р. Прусс aka arpruss. http://palmfontconv.sourceforge.net/ . Хороший конвертор из любого вида пальмовых шрифтов в любые. Программа подсказана Василием Парфеновым.

Перечислим операции, которые мы можем произвести с помощью перечисленных средств:

  • Создать старый бинарный шрифт можно редактором шрифтов
  • Из старого бинарного шрифта можно получить текстовый с помощью fextract
  • Откомпилировать несколько текстовых шрифтов в новый шрифт можно с помощью pilrc
  • Создать из нового шрифта базу можно с помощью pilrc
  • Заменить шрифт в существующей программе можно с помощью par.

Новые шрифты собираются из двух старых. Один старый шрифт должен быть строго в два раза раза больше другого по всем измерения. Это правило должно соблюдаться для всех глифов. Пример:

шрифт 11x11 и 22x22

буква "я" из одинарного набора. ее размеры 4x11
----
----
----
----
-##-
#-#-
-##-
#-#-
#-#-
----
----

буква "я" из двойного набора. ее размеры 8x22
--------
--------
--------
--------
--------
--------
--------
--------
--------
---####-
--#---#-
-#----#-
-#----#-
--#---#-
---####-
---#--#-
--#---#-
-#----#-
--------
--------
--------
--------

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

Шрифты после создания следует перевести в текстовый вид. Также нужно создать файл описания ресурсов следующего вида

// font.rc file
FONTFAMILY ID 0x232e
BEGIN
    FONT "a-6x6.pfn" DENSITY 72
    FONT "a-22x22.pfn" DENSITY 144
END

FONTFAMILY ID 0x2330
BEGIN
    FONT "a-7x7.pfn" DENSITY 72
    FONT "a-14x14.pfn" DENSITY 144
END

Запуском

pilrc font.rc

мы получим откомпилированный новый шрифт. Для получения little endian шрифтов используйте опцию -LE32:

pilrc -LE32 font.rc

.

Отзывы о PalmFontConv от wasly:

Передо мной стояла обратная задача: 
Перевести шрифт для PalmOS5(afnx) в шрифт для PalmOS4(nfnt). 

Обладая на тот момент абсолютно нулевыми знаниями об шрифтах для PalmOS5, тем не менее 
выполнил эту задачу в течении 10-20 минут с помощью программы PalmFontConv 
(http://palmfontconv.sourceforge.net/). Правда сей продукт тоже при конвертировании 
в txt-формат “забывает“ извлекать дефолтовый фонт. 

Советую глянуть - программа умеет многое приментельно к шрифтам под PalmOS5. 

Плюс проект OpenSource, так что всегда можно подкорректировать код или подглядеть 
что-то о формате шрифта. 

Есть версия под Win32-консоль, работающая через cygwin(http://www.cygwin.com). 
Но перекомпилить под винду его не составит особого труда. ;) 

P.S. PilFont тоже “забывал“ извлекать дефолтовый фонт из шрифта - ничего, 
я его научил. PilRC пользую версии 2.9p10 - в этой версии почему-то 
_снова_ “пропала“ строка вставляющая FFFF в конце шрифта - тоже научили. 
Вот в чем прелесть OpenSource - это ж надо понимать :) 
hidensityfonttools.txt · Last modified: 2003/08/18 12:31 by 127.0.0.1