Menu English Ukrainian Russian 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.

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

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

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

<< Назад

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

Искусственная кожа для эмуляции прикосновений 15.04.2024

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

Кошачий унитаз Petgugu Global 15.04.2024

Забота о домашних животных часто может быть вызовом, особенно когда речь заходит о поддержании чистоты в доме. Представлено новое интересное решение стартапа Petgugu Global, которое облегчит жизнь владельцам кошек и поможет им держать свой дом в идеальной чистоте и порядке. Стартап Petgugu Global представил уникальный кошачий унитаз, способный автоматически смывать фекалии, обеспечивая чистоту и свежесть в вашем доме. Это инновационное устройство оснащено различными умными датчиками, которые следят за активностью вашего питомца в туалете и активируются для автоматической очистки после его использования. Устройство подключается к канализационной системе и обеспечивает эффективное удаление отходов без необходимости вмешательства со стороны владельца. Кроме того, унитаз имеет большой объем смываемого хранилища, что делает его идеальным для домашних, где живут несколько кошек. Кошачий унитаз Petgugu разработан для использования с водорастворимыми наполнителями и предлагает ряд доп ...>>

Привлекательность заботливых мужчин 14.04.2024

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

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

Устройство ухода за кожей по образцу ныряющего жука 05.09.2021

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

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

Разработчики создали миниатюрные искусственные присоски, которые могут собирать и контролировать жидкости организма, прилипая к коже. Они встроили улавливающие жидкость гидрогели в полости чашек для контроля уровня кислотности (pH). Гидрогель меняет цвет при разном уровне pH. Интегрируя методы машинного обучения, они также разрабатывают программное приложение, которое может автоматически определять уровни pH по цвету, обозначенному чувствительными к pH гидрогелями.

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

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

▪ Электроника оценит уровень сладости еды и напитков

▪ Мозг в пробирке

▪ Тайваньские производители бросают OLED

▪ Облачный компьютер ZTE Taichi Cloud Computer W100D

▪ Новый рекорд в области высокотемпературной сверхпроводимости

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

 

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

▪ раздел сайта Радиоэлектроника и электротехника. Подборка статей

▪ статья О честности высокой говорит. Крылатое выражение

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

▪ статья Кухонный рабочий. Типовая инструкция по охране труда

▪ статья Выносной щуп - делитель частоты до 500 МГц для частотомера FC250. Энциклопедия радиоэлектроники и электротехники

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

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

Имя:


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


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





All languages of this page

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

www.diagram.com.ua

www.diagram.com.ua
2000-2024