Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Редактор растровых шрифтов для графических ЖКИ. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Радиолюбителю-конструктору

Комментарии к статье Комментарии к статье

Автор предлагает компьютерную программу собственной разработки, предназначенную для создания и редактирования шрифтов для распространенных сегодня графических ЖКИ.

В последние годы радиолюбители все чаще используют в своих разработках для отображения информации графические ЖКИ. Особенность большинства таких приборов - наличие частично или полностью загружаемого внешним управляющим устройством знакогенератора либо полное отсутствие такового. В первом случае при инициализации индикатора требуется загрузка шрифта (набора образов символов) в память знакогенератора. Чтобы вывести символ на экран, программа передает в контроллер ЖКИ только его код (адрес в знакогенераторе), а отображение символа на экране обеспечивает контроллер ЖКИ. Во втором случае все операции, необходимые для изображения символа на экране, выполняет программа управляющего устройства. Зачастую готовые процедуры имеются в библиотеках систем разработки программ.

Но в обоих случаях необходимы внешние шрифты. С одной стороны, это хорошо, так как дает возможность использовать наборы символов, наиболее подходящие для решения конкретных задач. Однако нужные шрифты приходится либо искать, либо создавать самостоятельно. Нельзя сказать, что файлы шрифтов для графических ЖКИ редкость. Их легко найти в Интернете, но далеко не всегда найденный шрифт может быть использован.

Дело в том, что различные контроллеры ЖКИ по-разному разворачивают образ символа в матрице знакоместа. Например, контроллер KS0107 (KS0108) индикатора WG12864 разворачивает байты образа вертикально, как показано на рис. 1, а контроллер RA6963 индикатора WG240128 - горизонтально (рис. 2). В первом случае символ R должен быть описан последовательностью байтов 00H, 00H, 00H, 7FH, 09H, 19H, 29H, 49H, во втором - 1EH, 11H, 11H, 1EH, 14H, 12H, 11H, 00H. Следовательно, шрифт, подготовленный для ЖКИ с горизонтальной разверткой байтов образов символов, будет некорректно отображен на индикаторах с вертикальной разверткой, и наоборот.

Редактор растровых шрифтов для графических ЖКИ
Рис. 1. Образ символа в матрице знакоместа

Редактор растровых шрифтов для графических ЖКИ
Рис. 2. Образ символа в матрице знакоместа

С точки зрения программирования шрифт представляет собой массив констант. При разработке программ, выводящих информацию на ЖКИ, используют различные языки программирования с разными правилами описания таких массивов. Например, на языке ассемблера константы задают директивами db (define byte), а на языке BASIC - операторами Data. На языке C массив констант можно задать просто набором их значений. Представление шестнадцатеричных чисел тоже различно. В разных языках программирования используются, например, форматы 0xNN, &hNN, $NN, NNH, где NN - шестнадцатеричные цифры.

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

Такие редакторы можно найти в Интернете. Их (по крайней мере, тех, с которыми имел дело автор) основной недостаток - узконаправленность. Создается впечатление, что программа разработана энтузиастом для решения своей конкретной задачи. Например, одна программа создает выходной файл в формате, который понятен единственному компилятору языка программирования, другая создает образы символов, пригодные только для ЖКИ определенного типа. Поэтому создать нужный шрифт с их помощью либо вовсе не удается, либо выходной файл приходится корректировать, например, с помощью текстового редактора, что занимает много времени и редко обходится без ошибок. Возможности этих программ по редактированию шрифтов, созданных другими редакторами, зачастую весьма ограничены.

Предлагаемая программа CG-Edit разработанаавтором как более универсальный инструмент. Она позволяет разрабатывать новые и корректировать ранее созданные (в том числе "чужие") шрифты в наиболее употребительных в радиолюбительской практике форматах.

Допустимы следующие размеры знакомест (первый сомножитель - число пикселов по горизонтали, второй - по вертикали): 6x8, 8x8, 12x16, 16x16, 16x24, 24x16, 24x24. Можно разрабатывать и редактировать шрифты как в позитивном, так и в негативном изображении, а также изменять направление развертки байта в знакоместе с вертикального на горизонтальное, и наоборот. Выходная информация может быть оптимизирована для использования в программах на языке ассемблера, на различных версиях языков BASIC и С.

Программа предназначена для персональных компьютеров, работающих под управлением 32- и 64-разрядных версий ОС Windows. Она состоит из единственного исполняемого файла CG-Edit.exe и не требует установки, проста в использовании, имеет интуитивно понятный пользовательский интерфейс.

После запуска программы на экране компьютера будет открыто окно, показанное на рис. 3. В его левой верхней части находится область выбора редактируемого символа в виде таблицы, в ячейках которой размещены символы кодовой страницы Windows-1251. Отображены только символы с кодами 20Н-0FFH, область управляющих кодов 0H-1FH отсутствует, поскольку они не имеют графических эквивалентов. Все основные символы латиницы, кириллицы и цифры находятся за пределами области кодов 7FH-0BFH, поэтому эту область удобно использовать для создания любых нужных для решаемой задачи символов взамен имеющихся там согласно кодовой странице Windows-1251.

Редактор растровых шрифтов для графических ЖКИ
Рис. 3. Окно программы на экране компьютера

В правой части окна находится область редактирования, в которую будет выведено знакоместо с требуемым символом, пока эта область пуста. Слева внизу размещены экранные кнопки "Создать знакогенератор" и "Импортировать знакогенератор". Первая из них переводит программу в режим создания нового знакогенератора. При этом открывается окно ввода параметров создаваемого шрифта, в котором необходимо выбрать из списка размер знакоместа и направление развертки байта в нем.

Необходимо заметить, что для знакомест не всех размеров допустимы оба направления развертки байтов. Дело в том, что программа ориентирована на максимальную плотность упаковки информации. Ведь основные "потребители" создаваемых с ее помощью шрифтов - микроконтроллерные устройства, имеющие относительно небольшой объем памяти.

На рис. 4 видно, что при горизонтальной развертке байта в знакоместе размерами 6x8 пкс полезно используются лишь шесть разрядов, а два разряда остаются лишними. Всего образ символа занимает восемь байтов. При вертикальной развертке (рис. 5) каждый столбец знакоместа занимает байт полностью, поэтому для образа символа требуется всего шесть байтов. Разница в два байта на каждый символ шрифта довольно существенна, поэтому во всех знакоместах, где число столбцов не кратно восьми, разрешена только вертикальная развертка.

Редактор растровых шрифтов для графических ЖКИ
Рис. 4. Горизонтальная развертка байта в знакоместе размерами 6x8 пкс

Редактор растровых шрифтов для графических ЖКИ
Рис. 5. Вертикальная развертка байта в знакоместе размерами 6x8 пкс

Выбрав параметры шрифта, нажимают на экранную кнопку "Создать". Этим закрывают окно ввода параметров, а основное окно приобретает вид, представленный на рис. 6.

Редактор растровых шрифтов для графических ЖКИ
Рис. 6. Вид окна компьютерной программы

Программа создает в ОЗУ компьютера пустой образ знакогенератора. Он будет оставаться пустым до загрузки в него какого-либо шрифта из имеющегося файла нажатием на экранную кнопку "Импортировать знакогенератор" либо до создания собственных символов после нажатия на экранную кнопку "Создать знакогенератор". Символы в поле "Выбор символа" не отображают фактическое содержимое образа знакогенератора. Они всегда остаются неизменными и служат лишь для ориентировки. В области редактирования программа выводит изображение знакоместа выбранного размера.

Символ создаваемого или редактируемого знакогенератора, ячейка которого выбрана в таблице "Выбор символа" (она выделена в ней красным фоном), отображается в поле "Редактируемое знакоместо". Первоначально - это символ с кодом 20Н. Для перехода к другому символу нужно щелкнуть по соответствующей ему ячейке таблицы левой кнопкой мыши. Надпись выше знакоместа характеризует параметры создаваемого шрифта.

Редактируют содержимое знакоместа щелчками по его пикселам левой кнопкой мыши. Каждый такой щелчок изменяет состояние пиксела на противоположное. В нижней части поля редактирования находятся четыре экранные кнопки группового управления пикселами. Нажатие на одну из них сдвигает содержимое знакоместа на пиксел вверх, вниз, влево или вправо в его пределах. Нажатие на экранную кнопку "Стереть" полностью очищает знакоместо, а нажатие на кнопку "Откат" восстанавливает исходное начертание редактируемого символа. Ввиду того что операции стирания и отката безвозвратно удаляют результаты редактирования символа, перед их выполнением программа выдает соответствующие предупреждающие сообщения.

Нижняя строка и правый столбец знакоместа выделены желтым фоном. Это напоминает, что включенные пикселы в них нежелательны, так как эти области служат разделителями соседних символов на экране ЖКИ. Однако понятие "нежелательно" не означает запрета. Включить пиксел можно, что и приходится делать, создавая такие символы, как "Д" или "Щ". При работе со знакоместами большого размера желтым фоном выделены две нижние строки и два крайних правых столбца, так как для хорошего восприятия больших символов целесообразно иметь между ними увеличенные промежутки.

Ниже области редактирования находятся две экранные кнопки, с помощью которых можно либо полностью очистить знакогенератор, либо перекодировать его, изменив направление развертки байтов в знакоместе. При попытке удалить шрифт, в котором имеются несохраненные изменения, программа выдаст предупреждающее сообщение.

Допускаются произвольный порядок выбора символов и их многократное повторное редактирование. После первого же изменения состояния любого пиксела символ в соответствующей ячейке выбора будет выделен полужирным шрифтом увеличенного размера. Это показывает, что он подвергался редактированию. Все, что отображается в окне программы в процессе редактирования, показано на рис. 7. Видно, что символы "3" и "Щ" уже редактировались, сейчас редактируется символ "Щ", причем его "хвостик" находится в нежелательной зоне.

Редактор растровых шрифтов для графических ЖКИ
Рис. 7. Окно программы в процессе редактирования

При необходимости можно в любой момент изменить развертку байтов в знакоместе с вертикальной на горизонтальную, и наоборот. Для этого следует нажать на экранную кнопку "Изменить вид развертки". Операция действует одновременно на все символы знакогенератора. После ее выполнения на экран будет выведено соответствующее сообщение и изменены параметры шрифта, выведенные над знакоместом. Изменить направление развертки невозможно, если это приводит к увеличению объема образа шрифта.

Несколько слов о работе с негативными шрифтами. Само понятие негативного шрифта уже стало атавизмом, так как многие современные контроллеры ЖКИ умеют инвертировать изображение самостоятельно. Тем не менее возможность создания и редактирования негативных шрифтов в программе имеется. Никаких отличий от работы с позитивным шрифтом нет. Символы в любом случае выглядят на экране компьютера позитивными. Превращение их образов в негативные происходит в процессе записи созданного шрифта на диск компьютера. Забегая вперед, отметим, что при загрузке для редактирования файла, содержащего негативный шрифт, информация заносится в образ знакогенератора в памяти компьютера в инвертированном (позитивном) виде и инвертируется еще раз при записи на диск.

После установки параметров шрифта в окне программы появляется еще одна панель, озаглавленная "Выходной файл". В ней расположены управляющие элементы, позволяющие записать на диск файл знакогенератора в необходимом формате.

В выпадающем списке "Формат строки" (рис. 8) выбирают структуру строки в выходном текстовом файле. Последовательности шестнадцатеричных чисел, разделенных запятыми, может предшествовать ключевое слово "Data" или ".Db" либо оно может отсутствовать.

Редактор растровых шрифтов для графических ЖКИ
Рис. 8. Выпадающий список "Формат строки"

В выпадающем списке "Формат числа" (рис. 9) выбирают способ представления шестнадцатеричного числа. К двум шестнадцатеричным цифрам NN может быть добавлен один из имеющихся в списке префиксов либо суффикс "h".

Редактор растровых шрифтов для графических ЖКИ
Рис. 9. Выпадающий список "Формат числа"

Отметив пункт "Негативный шрифт", можно создать файл с таким шрифтом.

Для записи файла на диск компьютера необходимо нажать на экранную кнопку "Сохранить знакогенератор". Путь к нему указывают в стандартном диалоге Windows. По умолчанию для файла предлагается имя FontXXxYYmn.fnt, где XXxYY - формат знакоместа; m - символ "v" или "h", означающий соответственно вертикальную или горизонтальную развертку байта; n - символ "p" или "n", обозначающий соответственно позитивное или негативное изображение символов; fnt - расширение имени.

Имя файла можно модифицировать, добавляя в начале или конце допустимые символы. Однако разрушать конструкцию "FontXXxYYmn" не рекомендуется. По ней программа распознает параметры "своего" шрифта при его загрузке. В противном случае программа сочтет файл "чужим" и потребует ручного ввода параметров.

При необходимости отредактировать готовый файл знакогенератора в окне, изображенном на рис. 3, нажимают на экранную кнопку "Импортировать знакогенератор". Будет открыт стандартный диалог загрузки файлов Windows, в котором следует выбрать файл, подлежащий редактированию. Процесс загрузки этого файла различен в зависимости от его формата.

Файл, созданный с помощью рассматриваемого редактора, загружается в него без вмешательства пользователя. Вся необходимая информация о параметрах шрифта имеется в имени файла, конечно, если в нем сохранена конструкция, описанная выше.

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

Если параметры указаны правильно, то "чужой" шрифт с высокой вероятностью будет загружен успешно. Алгоритм чтения содержащейся в файле информации "понимает" как десятичные, так и шестнадцатеричные числа в различных представлениях, извлекает полезную информацию из операторов Data и .Db, игнорирует комментарии. Пожалуй, единственное, что может стать препятствием для правильной загрузки - наличие в файле какой-либо дополнительной информации в незакомментированном виде.

Процесс редактирования загруженного шрифта ничем не отличается от процесса создания нового. Последним этапом будет сохранение сделанной работы в файле, который станет для программы "своим".

Файл программы-редактора: ftp://ftp.radio.ru/pub/2016/03/CG-Edit.zip.

Автор: А. Савченко

Смотрите другие статьи раздела Радиолюбителю-конструктору.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Атомный секрет вечного блеска золота 20.06.2026

Золото издавна считается символом вечности и благородства не только из-за своей редкости, но и благодаря удивительной химической стойкости. В отличие от большинства металлов, оно не окисляется на воздухе, не тускнеет и не покрывается ржавчиной даже спустя тысячелетия. Эта уникальная инертность позволила золотым артефактам сохранять первозданный блеск с древних времен. Однако точный механизм такой защиты долго оставался загадкой для ученых. Недавнее исследование американских химиков-вычислителей раскрыло, что дело не просто в слабом взаимодействии с кислородом, а в особой атомной структуре поверхности металла. Сотрудники Тулейнского университета Санту Бисвас и Мэтью М. Монтемор провели детальное компьютерное моделирование, чтобы понять, как молекулы кислорода взаимодействуют с поверхностью золота. Ученые сравнили два основных типа атомных структур: "реконструированные" и "нереконструированные" поверхности. Было доказано, что природная способность золота к перестройке атомов играет кл ...>>

Смарфон Realme 16T 5G 20.06.2026

В сегменте доступных смартфонов с акцентом на длительную работу без подзарядки компания Realme представила интересную новинку - модель Realme 16T 5G. Главным преимуществом устройства стала по-настоящему впечатляющая батарея емкостью 8000 мАч, которая способна обеспечить до трех дней автономной работы при умеренном использовании. При этом инженерам удалось сохранить относительно компактный корпус толщиной менее 9 мм и вес всего 224 грамма, что делает смартфон удобным для повседневного ношения несмотря на внушительный аккумулятор. Смартфон оснащен большим 6,8-дюймовым LCD-дисплеем с высокой частотой обновления 144 Гц и пиковой яркостью до 1200 нит. Такое сочетание обеспечивает плавную картинку в динамичных сценах и комфортное восприятие контента даже под прямыми солнечными лучами. За производительность отвечает энергоэффективный процессор MediaTek Dimensity 6300, дополненный оперативной памятью LPDDR4X и накопителем UFS 2.2. Для эффективного отвода тепла во время продолжительных нагру ...>>

Проблема набора веса после 40 19.06.2026

С возрастом многие люди замечают, что поддерживать привычный вес становится все сложнее, даже если рацион и уровень активности существенно не меняются. Ученые из Каролинского института в Швеции раскрыли одну из ключевых биологических причин этого явления. Они показали, что с годами в жировой ткани замедляется процесс обновления липидов, из-за чего организм постепенно накапливает жир. Это естественное возрастное изменение объясняет, почему после 40 лет тело начинает "работать" иначе, способствуя набору веса. В долгосрочном исследовании специалисты наблюдали за жировой тканью 54 мужчин и женщин на протяжении в среднем 13 лет. Независимо от того, набирали участники вес или, наоборот, худели, у всех без исключения скорость липидного обмена в жировых клетках заметно снижалась. Жир в клетках обновляется все медленнее, и этот процесс происходит автоматически с течением времени. Те, кто не компенсировал замедление уменьшением калорийности питания, в среднем набирали около 20% от исходного в ...>>

Случайная новость из Архива

Батареи из крабов и креветок 07.09.2022

Ученые из американских университетов Хьюстона и Мэриленда нашли способ создавать батареи из переработанных панцирей крабов.

Сейчас наиболее распространенным типом аккумуляторов являются литиевые - они имеют высокую плотность хранения энергии при достаточно компактном размере, но очень дороги в производстве и могут загореться. Кроме того, они несут значительный ущерб для экологии, например полипропиленовые и поликарбонатные сепараторы, входящие в состав таких аккумуляторов, разлагаются сотни или тысячи лет.

Команда во главе с Лянбинг Ху увидела перспективу в цинковых батареях - этого материала в земной коре гораздо больше, и его добыча обходится дешевле. Ученым уже удалось создать прототипы с высокой удельной мощностью, и технология оказалась не более затратной, чем свинцово-кислотные аккумуляторы. Главным недостатком таких батарей является достаточно короткий срок службы, но ученым удалось решить эту проблему, сделав устройство перезаряжаемым и более надежным с помощью природного материала под названием хитозан.

Хитозан - это производный продукт хитина, покрывающий клеточные стенки грибов, кальмаров, а чаще всего он встречается в природе на экзоскелетах ракообразных, включая крабов, креветок и омаров. Панцири этих животных можно легко получать из отходов морепродуктов, выбрасываемых в большом количестве.

Исследователи собрали прототип с электролитом из хитозана, взаимодействующего с цинковым электродом. Он показал обнадеживающие результаты в ходе испытаний. Конструкция батареи предотвратила образование щупальцевидных наростов, дентритов, которые могут снизить производительность, и показала "исключительную циклическую стабильность", сохранив эффективность 99,7% в течение 1000 циклов при работе с высокой плотностью тока - 50 мАч на квадратный см.

Благодаря экологически чистым материалам около двух третей аккумулятора будут быстро разлагаться бактериями, в частности хитозановый электролит - всего за пять месяцев. Оставшийся цинк можно переработать.

Другие интересные новости:

▪ Ноутбук Dell XPS 13 Developer Edition

▪ Умная футболка YouCare 5G

▪ Индия изучает Луну

▪ Молекулярная память работает при комнатной температуре

▪ Индия изучает Луну

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Альтернативные источники энергии. Подборка статей

▪ статья Запись сразу нескольких телевизионных каналов. Искусство видео

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

▪ статья Тростник обыкновенный. Легенды, выращивание, способы применения

▪ статья История электрификации. Энциклопедия радиоэлектроники и электротехники

▪ статья Период и частота колебаний. Энциклопедия радиоэлектроники и электротехники

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026