Модернизация шрифта
---------------------------------
(С) Лыхин Д.В., г.Кемерово.
----------------------------------
В ZX-РЕВЮ часто стали появ-
ляться программы для модернизации
шрифта. Года два назад я очень
серьезно занимался этим вопросом.
Для издания любой новой книги
обычно разрабатывается новый
шрифт (в смысле: заголовки, крас-
ные строки и т.д.). Для этого су-
ществуют художники-оформители,
среди которых есть очень талант-
ливые в своей области люди.
По-моему, для каждой программы, в
идеале, должен быть разработан
свой шрифт. Но если Вы не худож-
ник-оформитель, то для Вас это
превратится в большую проблему.
Однако, многое можно получить,
используя простую модернизацию
шрифта. Например, на рисунке 1
показан пример получения совер-
шенно новой буквы "П" (взято для
простоты) путем сдвига вниз, вле-
во, вверх, с последующим удалени-
ем первоначального варианта.
Рис.1.
Получилась ведь совершенно
другая буква?
В приведенном примере мы сдви-
гали все поле знакоместа целиком.
Такими движениями можно получить
различные утолщения (если оста-
вить старый символ), или тени
(если удалить его). Это самое
простейшее преобразование.
Другой, немного более сложный
способ преобразования заключается
в различных перекосах. Перекос, в
сущности, это сдвиг частей поля
знакоместа по линиям. На рисунке
2 показан пример сдвига вправо
двух верхних сегментов поля зна-
коместа. Средний сегмент сдвинут
на 1 пиксель, верхний - на два.
Результат - наклон буквы впра-
во. Если верхний сегмент оставить
на месте, а сдвигать средний и
нижний таким же образом, получим
Рис.2.
наклон влево. Вариантов взаимного
сдвига сегментов друг относитель-
но друга уже можно насчитать дос-
таточно много. А вот, что полу-
чится, если сложить старый и но-
вый варианты буквы (см. рис.3).
Рис.3.
Если Вам не нравятся "пусто-
ты", их можно заполнить.
"Резать" можно не только по
горизонтали или вертикали, но и
по любой линии, прямой или лома-
ной. Можно, например, по диагона-
ли.
Действуя таким образом: ре-
зать, сдвигать, оставлять или
убирать, делая утолщения или те-
ни, Вы можете получить из одного
образца шрифта десятки других.
Естественно, один образец можно
изменять по разному не один раз.
И если Вы располагаете пятью-
шестью образцами шрифта, то запас
Ваших шрифтов станет практически
бесконечным.
Написание программ для подоб-
ного рода преобразований, может и
покажется кому-нибудь скучным, но
потратив несколько часов, Вы по-
лучите изумительный результат.
Теперь к вопросу: где взять
образцы шрифтов? Для начала подс-
кажу. Из книг Вы сможете вытащить
пару (я имею ввиду текст): обык-
новенный печатный и курсив. В
школьном букваре - классический и
письменный. Еще один вариант - в
справочнике по черчению.
Вот еще несколько примеров,
заимствованных у художников-офор-
мителей. Если все узкие буквы
(типа A, G, B...) сделать широки-
ми, а широкие - узкими (Ш, Ф, Ж),
Вы получите этакий лихо-безала-
берный шрифт. Другое. Вначале Вы
заполняете часть поля знакоместа
целиком, а потом удаляете ненуж-
ное. Причем удаления должны быть
минимальные. На рис.4 показана
буква "А", созданная таким обра-
зом.
Рис.4.
Еще пример. Там, где должен
быть "выступ" - делается наобо-
рот, "впадина". Для примера -
буква "Ф" на рисунке 5.
Рис.5.
Самые красивые шрифты получа-
ются из старой русской кириллицы.
Но при этом Вы столкнетесь с
трудностями. Во-первых, вряд ли
Вам удастся найти "полный набор",
и Вам придется "вытаскивать" его
по буквам из различных историчес-
ких романов. А может Вам повезет,
и Вы раздобудете специальную ли-
тературу по этому вопросу.
Во-вторых, очень трудно воспроиз-
вести ее на поле 8х8 из-за боль-
шого количества "завитков" и
"хвостиков". И все-таки, попро-
буйте. Желаю удачи!
Комментарий ИНФОРКОМА.
Прежде всего, насчет образцов
шрифтов. Конечно, поле размером
8х8 позволяет лишь создать набор
минимально различимых между собой
символов. Иными словами, он поз-
воляет не спутать букву "А" с
буквой "В". И то, удается полу-
чить из него "наклонный", "тене-
вой" и т.п. Варианты более слож-
ных преобразований, предложенные
автором, в некоторых случаях да-
дут желаемый результат, однако
для букв сложной конфигурации
придется после выполнения преоб-
разования "доводить" эти символы
вручную. Но ведь никто и не обе-
щает сразу же готовый результат.
Второй момент касается образ-
цов шрифтов. Нам кажется, что
здесь вряд ли поможет печатная
литература (опять же из-за невоз-
можности воспроизвести все нюансы
на поле 8х8). Гораздо большую
практическую пользу смогут ока-
зать эффективные программы для
поиска и "изъятия" удачных шриф-
тов из готовых программ из расп-
ространяемого нами дистрибутивно-
го сборника "Утилиты-1".
И наконец, насчет размеров
символа. В книге "Прикладная гра-
фика" мы подробно рассказывали о
том, как реализовать печать шриф-
тами с нестандартным размером по-
ля, например, 11х13 или любым
другим. Вот здесь справочник по
черчению и другая литература мо-
жет и пригодится. В общем, при
творческом подходе уверены, что
результат оправдает затраченные
усилия и придаст Вашей программе
неповторимый облик.
В заключение, отметим, что мы
уже неоднократно приводили прог-
раммки для преобразования шрифтов
(см. например, ZX-РЕВЮ-93, N3-4,
стр.46, ZX-РЕВЮ-94, N4, стр.37).
Не прекращается поток писем на
эту тему от начинающих програм-
мистов, осваивающих машинный код.
В этом номере РЕВЮ в разделе ЭТЮ-
ДЫ мы приводим еще несколько
практических программ, с помощью
которых можно получить стилизо-
ванные шрифты. Однако, следует
заметить, что больший интерес
представляет не формирование сти-
лизованного символьного набора, а
стилизованная печать, когда сим-
вольный набор используется стан-
дартный, а стилизованные символы
образуются непосредственно в мо-
мент печати на экране. На этом
принципе работает знакогенератор
стилизованных шрифтов Сергея Су-
турина (ZX-РЕВЮ-94, N4, стр.32).
Впрочем, вышесказанное отно-
сится только к использованию ла-
тинского символьного набора (кра-
сивая надпись в загрузчике прог-
раммы и др.). Если же в самой
программе применяется русский или
русско-латинский загружаемый сим-
вольный набор, то его заранее
можно сделать стилизованным.
Здесь процедуры преобразования
могут оказаться полезными, сохра-
нив Вам время на этапе конструи-
рования стилизованного русского
шрифта из нестилизованного. Затем
полученный шрифт следует "довес-
ти" вручную, переделывая неудачно
сформированные символы.