Автор Тема: Автоматический кернинг шрифта (межсимвольное расстояние)  (Прочитано 2394 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dimon_II

FontKern.exe Freeware,Open Source, исходники в архиве с программой.
Googledrive

Эта программа позволяет выполнить автокернинг для заданных символов, если минимальное расстояние между ними выходит за пределы диапазона. Сам шрифт не меняется - создается файл OTLFD с кернинговыми парами для "настоящих" шрифтовых редакторов. И скорее всего понадобится ручная доработка.
Очень специфическая и недоработанная программа... Сделана потому, что в свободных бесплатных редакторах такой опции нет, и даже весьма продвинутые игнорируют кириллицу. Работает только с файлами TTF.

Что делать:
1. Загрузить шрифт
2. Загрузить файл параметров кернинга, файл прилагается и может быть изменен.
3. Сохранить в формате  OTLFD.
4. Посмотреть в программе: в таблице показано вычисленное минимальное расстояние между каждой парой букв.
  Под таблицей показывается
  - Стандартный текст из пары букв;
  - Буквы по одной с их реальными размерами (на случай, если в паре был кернинг);
  - Мой вариант смещения, зеленый влево, красный вправо (смещается - если расстояние больше max.tst или меньше min.tst).

Для параметров используется файл (пример - abc.txt) из 5 строк:
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяЁёҐґІіЇїЄє0123456789@
min.tst=10
min.set=20
max.tst=100
max.set=80
Первая строка - список символов, которые надо обработать. Можно добавить латиницу или убрать маленькие. Пары маленькая+большая буква автоматически исключаются из обработки.
min.tst - минимально расстояние, которое требует исправления. Если раздвигать символы не требуется, можно указать большое отрицательное число, например -1000
min.set - расстояние, до которого раздвигаются слишком близко расположенные.
max.tst - максимально разрешенный интервал между символами
max.set - до которого сближаются растянутые
То есть дистанция в диапазоне min.tst ... max.tst остается без изменений.
В примере max.tst=100 и max.set=80, это значит что интервал может быть и БОЛЬШЕ 80, но интервал 100+ будет уменьшен до 80. 
Можно и везде указать одно значение, например - 50.

Написана на базе примера и с использованием библиотеки PascalType
https://sourceforge.net/projects/pascaltype/

Среда разработки: Delphi 7 (Win32)


« Последнее редактирование: 23 Март 2021, 14:51:06 »
     
    Поблагодарившие: Kariotip

    Оффлайн Klistir

    • Новичок
    • Сообщений: 1
      • Просмотр профиля
    А где, собственно, программа?
       

      Оффлайн Dimon_II

      Программа FonFit на Github.

      Очередная шрифтовая утилита: для вертикального выравнивания глифов и кернинга (подгонки межсимвольного расстояния между конкретными буквами). Freeware и с открытыми исходниками (на  Delphi10).
      Если при чтении шрифта в каталоге рядом с SVG находится одноименный OTF или TTF - от тоже загружается и используется для отображения в дереве глифов и таблице кернинга.


      В программе три закладки:

      Glyph: выберите символ, к размерам которого будете подгонять иконки. Кнопке SET - запомнит его.
      Можно выделять по одному глифу, несколько или всю ветку - область юникода. Отцентровать, подогнать высоту, выровнять по верхнему или нижнему краю... Отображается текущий и запомненный глиф, можно менять масштаб и двигать глиф на заданный шаг.

      XML: пользоваться не обязательно, показывает и позволяет редактировать глифы в виде XML(SVG).

      Kerning:  выделяя отдельные символы или область юникода добавьте в таблицу строки (1-й символ для кернинга) и столбцы (2-й символ). Существующий кернинг отобразится в таблице. Для автокернинга внизу есть настройка - при каком минимальном расстоянии увеличивать интервал (до какого значения) и при каком максимально - уменьшать.
      При выборе ячейки в таблице отображается пара символов, смещение кернинга и (для посчитанного автокернинга) красным кратчайшее расстояние между глифами.
      Результать применяется к шрифту кнопкой APPLY


      Программа работает только с SVG-шрифтами, чтоб не заморачиваться с двоичными форматами шрифтов, для разборки которых еще и библиотеки не найдешь, а те что есть - под какие-то конкретные старые веррсии.
      TTF/OTF <-> SVG можно преобразовывать онлайн или шрифтовыми редакторами.