В этой статье рассмотрена версия 3.0 редактора растровых шрифтов CG-Edit - по мнению её автора, финальная и не подлежащая дальнейшему совершенствованию. Базой для её разработки послужила предыдущая версия 2.61 этой программы, описанная в [1].
Главное отличие версии 3.0 предлагаемой программы от предыдущих - возможность работы с символами, расположенными на любом из 256 знакомест кодовой таблицы. Все предыдущие версии оперировали лишь с символами, которые имели коды от 20Н-0FFH. Это приводило, например, к тому, что при загрузке шрифта, содержащего символы с кодами 0H-1FH, в создаваемый редактором образ шрифта они помещались, начиная с адреса 20H. Соответственно смещалась вся кодовая таблица, а последние 32 её символа (как правило, буквы русского алфавита) терялись. Версия 3.0 автоматически распознаёт, правильно ли загружает и записывает в файл подобные шрифты.
Она оперирует с четырьмя видами шрифтов:
- полным, содержащим символы с кодами от 0H до 0FFH (максимум 256 символов);
- сокращённым, содержащим символы с кодами от 20H до 0FFH (максимум 224 символа);
- национальным (например, кириллическим), содержащим символы с кодами от 0С0H до 0FFH (максимум 64 символа);
- произвольным, содержащим непрерывную последовательность из 1- 256 символов.
Понятие "полный шрифт" вовсе не означает, что в нём присутствуют все 256 возможных символов. Их может быть и меньше, главное, чтобы размещение имеющихся символов полностью соответствовало реализуемой кодовой таблице, например, CP866 или Windows-1251. Восклицательный знак должен иметь код 21Н, а единица - код 31Н. В сокращённом шрифте эти же символы будут занимать позиции 1H и 11H, и подпрограмма вывода их на экран для правильной работы должна вычитать из стандартного кода каждого символа число 20H (десятичное 32). В файле кириллического шрифта код 1H будет соответстововать русской букве А, код 2H - букве Б и т. д. Эти коды отличаются от стандартных на 0С0H (десятичное 192).
Вид главного окна программы после загрузки файла шрифта, определённого как полный, или создания нового шрифта представлен на рисунке. В целом он такой же, как в предыдущей версии [1], однако есть отличия. Теперь на панели "ВЫБОР СИМВОЛА" таблица знакогенератора представлена полностью, в ней предусмотрены места для всех 256 возможных символов. На панели "РЕДАКТИРОВАНИЕ СИМВОЛА" ниже его знакоместа выводится рекомендуемая для текущего размера знакоместа ширина линии (в пикселах), которой следует рисовать символ. Эту рекомендацию программа даёт в соответствии с [2]. Её соблюдение позволяет обеспечить максимально комфортное визуальное восприятие создаваемых символов.
Вид главного окна программы после загрузки файла шрифта
Ширина межсимвольного промежутка (жёлтой полосы в правой части знакоместа) также устанавливается согласно требованиям [2]. Высота межстрочного промежутка (жёлтой полосы в нижней части знакоместа) равна ширине межсимвольного промежутка.
Существует общепринятое соотношение между высотой строчных и прописных букв, согласно которому высота строчных букв, не имеющих выступающих вверх и вниз элементов, должна составлять 70 % высоты прописных. Выдерживать это соотношение помогает двухцветная раскраска области знакоместа, занимаемой символом. Её нижняя часть, отведённая для строчных букв, - белая, а верхняя - бежевая.
На панели "ВЫХОДНОЙ ФАЙЛ" увеличилось до четырёх число вариантов вывода созданного знакогенератора в файл, которые описаны выше. Нужный выбирают из выпадающего в графе "Набор символов" списка. Имена выводимых файлов программа формирует автоматически по тем же правилам, что и в предыдущих версиях. Но если выводится полная таблица символов, к имени файла добавляется слово FULL. Например, Font08x08v1pFULL с соответствующим расширением.
Несколько изменены инструменты "Ломаная линия" и "Окружность". Ломаную линию теперь можно в любом месте завершить и продолжить сеанс работы с этим инструментом, начиная с другой точки. Для этого достаточно щёлкнуть правой кнопкой мыши в любой позиции знакоместа, после чего начать строить новую ломаную линию с произвольной точки. Аналогично создание окружности можно завершить щелчком правой кнопки мыши в любой позиции знакоместа, после чего задать центр новой окружности и начать её построение.
Модуль распознавания символов теперь распознаёт и автоматически загружает файлы не только полных шрифтов, но и файлы моделей символов.
Стал более гибким механизм ручной загрузки файлов. В предыдущих версиях она всегда производилась с позиции 20H программного образа шрифта, что в ряде случаев создавало большие проблемы при дальнейшей работе с ним. Например, символы кириллицы попадали совсем не в свою область знакогенератора, а их перенос на положенные места был довольно трудоёмким. Теперь имеется возможность загрузить шрифт из файла как полный, так и сокращённый или кириллический, начиная соответственно с позиций 0Н, 20Н или 0С0Н образа знакогенератора.
Файлы моделей - ответственная часть редактора, обеспечивающая правильное функционирование модуля распознавания символов. Как отмечалось в [1], некоторые их характеристики строго регламентированы и не подлежат изменению. Однако в предыдущих версиях программы все они были полностью доступны для редактирования с помощью любых инструментов программы.
Теперь при открытии файла моделей для редактирования блокируются все органы управления, находящиеся на панели "ВЫХОДНОЙ ФАЙЛ", за исключением экранной кнопки "Сохранить файл знакогенератора". Это и не даёт возможности изменить параметры выходного файла. Всю информацию, необходимую для корректной записи файла моделей на диск, в этом случае формирует сама программа. При нажатии на указанную выше экранную кнопку запись файла происходит по тому же пути и под тем же именем, под которым файл был открыт.
Если один или несколько файлов моделей утеряны, обнаружив это, программа создаст в папке Model под их именами новые, но пустые. Это, конечно, нарушит работу модуля распознавания, но не вызовет фатальных последствий и позволит в дальнейшем заполнить пустой файл моделями символов из загружаемых в программу шрифтов с помощью инструмента "Создать модели" или вручную. Правильная работа модуля опознавания будет восстановлена. Порядок изменения содержимого файлов моделей подробно изложен в [1].
В программе устранены мелкие недочёты, обнаруженные в предыдущей версии, а также значительно расширилось информирование пользователя об особенностях выполнения операций. В остальном работа программы полностью соответствует описанной в [1].
Версия 3.0 программы CG-Edit предназначена для работы на компьютерах под управлением ОС Windows 7 и выше. В отличие от предыдущих версий, она требует выполнения процедуры установки на компьютер. Имеются два установочных файла: CGE_Final_ 32bit.msi для установки на компьютер с 32-разрядной версией Windows и CGE_Final_64bit.msi для установки на компьютер с 64-разрядной версией Windows. Впрочем, нужно отметить, что 32-разрядную версию программы можно установить и на компьютер с 64-разрядной ОС.
После установки программы в её рабочей папке будут находиться исполняемый файл и две папки: Fonts - для хранения библиотеки шрифтов, Model - для файлов моделей. Проблем с библиотекой COMDLG32.OCX, о которых говорилось в [1], версия 3.0 не имеет. Удаляют программу либо стандартными средствами Windows, либо повторным запуском установочного файла с выбором пункта "Удалить".
Если в папке Fonts имеются файлы шрифтов, то при удалении программы эта папка и файлы шрифтов в ней остаются нетронутыми. Они сохранятся и при повторной установке удалённой программы. Если повторная установка программы не предполагается, её пустую рабочую папку вместе с папкой Fonts и находящимися в ней файлами можно удалить вручную.
64- и 32-разрядные варианты программы редактора GC-Edit версии 3.0 имеются здесь.
Литература
1. Савченко А. Версия редактора CG-Edit для работы со шрифтами большого формата. - Радио, 2017, № 11, с. 26-28.
2. ГОСТ Р 52324-2005 (ИСО 134062:2001). Эргономические требования к работе с визуальными дисплеями, основанными на плоских панелях. Часть 2. Эргономические требования к дисплеям с плоскими панелями. - URL: http://docs.cntd. ru/document/120003 9544 (11.11.17).
Автор: А. Савченко, пос. Зеленоградский Московской обл.