Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Редактор растрових шрифтів для графічних РКІ. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Радіоаматор-конструктор Автор пропонує комп'ютерну програму власної розробки, призначену для створення та редагування шрифтів для поширених сьогодні графічних РКІ. В останні роки радіоаматори все частіше використовують у своїх розробках для відображення інформації графічні РКІ. Особливість більшості таких приладів - наявність частково або повністю завантажуваного зовнішнім пристроєм, що управляє, знакогенератора або повна відсутність такого. У першому випадку при ініціалізації індикатора потрібно завантаження шрифту (набір образів символів) в пам'ять знакогенератора. Щоб вивести символ на екран, програма передає в контролер РКІ лише його код (адресу у знакогенераторі), а відображення символу на екрані забезпечує контролер РКІ. У другому випадку всі операції, необхідні зображення символу на екрані, виконує програма керуючого устройства. Найчастіше готові процедури є у бібліотеках систем розробки програм. Але в обох випадках потрібні зовнішні шрифти. З одного боку, це добре, тому що дає можливість використовувати набори символів, які найбільш підходять для вирішення конкретних завдань. Однак потрібні шрифти доводиться шукати або створювати самостійно. Не можна сказати, що файли шрифтів для графічних РК рідкість. Їх легко знайти в Інтернеті, але не завжди знайдений шрифт може бути використаний. Справа в тому, що різні контролери РКІ по-різному розгортають образ символу в матриці знайоместа. Наприклад, контролер KS0107 (KS0108) індикатора WG12864 розгортає байти образу вертикально, як показано на рис. 1 а контролер RA6963 індикатора WG240128 - горизонтально (рис. 2). У першому випадку символ R повинен бути описаний послідовністю байтів 00H, 00H, 00H, 7FH, 09H, 19H, 29H, 49H, у другому - 1EH, 11H, 11H, 1EH, 14H, 12H, 11H, 00. Отже, шрифт, підготовлений для РКІ з горизонтальною розгорткою байтів образів символів, буде некоректно відображено на індикаторах з вертикальною розгорткою, і навпаки.
З погляду програмування шрифт є масивом констант. При розробці програм, що виводять інформацію на РКІ, використовують різні мови програмування з різними правилами опису таких масивів. Наприклад, мовою асемблера константи задають директивами 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.
У правій частині вікна знаходиться область редагування, в яку буде виведено знайоме місце з необхідним символом, поки ця область порожня. Зліва внизу розміщені екранні кнопки "Створити генератор" і "Імпортувати генератор". Перша їх переводить програму у режим створення нового знакогенератора. При цьому відкривається вікно введення параметрів шрифту, що створюється, в якому необхідно вибрати зі списку розмір знайоместа і напрямок розгортки байта в ньому. Необхідно зауважити, що для знайомств не всіх розмірів допустимі обидва напрямки розгортки байтів. Справа в тому, що програма орієнтована на максимальну густину упаковки інформації. Адже основні "споживачі" шрифтів, що створюються з її допомогою - мікроконтролерні пристрої, що мають відносно невеликий обсяг пам'яті. На рис. 4 видно, що при горизонтальній розгортці байта в знайомому розмірами 6x8 пкс корисно використовуються лише шість розрядів, а два розряди залишаються зайвими. Усього образ символу займає вісім байтів. При вертикальній розгортці (рис. 5) кожен стовпець знайоместа займає байт повністю, тому образу символу потрібно всього шість байтів. Різниця в два байти на кожен символ шрифту досить істотна, тому у всіх знайомих, де число стовпців не кратно восьми, дозволена тільки вертикальна розгортка.
Вибравши параметри шрифту, натискають на екранну кнопку "Створити". Цим закривають вікно введення параметрів, а основне вікно набуває вигляду, представленого на рис. 6.
Програма створює в ОЗП комп'ютера порожній образ генератора. Він залишатиметься порожнім до завантаження в нього будь-якого шрифту з наявного файлу натисканням на екранну кнопку "Імпортувати знакогенератор" або до створення власних символів після натискання на екранну кнопку "Створити знакогенератор". Символи у полі "Вибір символу" не відображають фактичного вмісту образу генератора. Вони завжди залишаються незмінними і є лише орієнтування. В області редагування програма виводить зображення знайомого обраного розміру. Символ створюваного або редагованого знакогенератора, комірка якого вибрано в таблиці "Вибір символу" (вона виділена в ній червоним тлом), відображається в полі "Редаговане знайоме місце". Спочатку - це символ із кодом 20Н. Для переходу до іншого символу потрібно клацнути по відповідному осередку таблиці лівою кнопкою миші. Напис вище знайомства характеризує параметри створюваного шрифту. Редагують вміст знайоместа клацаннями його пікселів лівою кнопкою миші. Кожне таке клацання змінює стан піксела на протилежне. У нижній частині поля редагування знаходяться чотири екранні кнопки групового керування пікселями. Натискання однієї з них зсуває вміст знайоместа на піксел вгору, вниз, вліво чи вправо у межах. Натискання на екранну кнопку "Стерти" повністю очищає знайоме місце, а натискання на кнопку "Откат" відновлює вихідне зображення редагованого символу. Зважаючи на те, що операції стирання та відкату безповоротно видаляють результати редагування символу, перед виконанням програма видає відповідні попереджувальні повідомлення. Нижній рядок та правий стовпець знайоместа виділені жовтим тлом. Це нагадує, що включені пікселі в них небажані, оскільки ці області є роздільниками сусідніх символів на екрані РКІ. Однак поняття "небажано" не означає заборони. Увімкнути піксел можна, що й доводиться робити, створюючи такі символи як "Д" або "Щ". Працюючи зі знайоместами великого розміру жовтим тлом виділено два нижні рядки і два крайніх правих стовпця, оскільки хорошого сприйняття великих символів доцільно мати з-поміж них збільшені проміжки. Нижче області редагування знаходяться дві екранні кнопки, за допомогою яких можна повністю очистити знакогенератор, або перекодувати його, змінивши напрямок розгортки байтів в знайомому. При спробі видалити шрифт, у якому є незбережені зміни, програма видасть попереджувальне повідомлення. Допускаються довільний порядок вибору символів та їх багаторазове повторне редагування. Після першого ж зміни стану будь-якого пікселя символ у відповідному осередку вибору буде виділено жирним шрифтом збільшеного розміру. Це показує, що він зазнавав редагування. Все, що відображається у вікні програми в процесі редагування, показано на рис. 7. Видно, що символи "3" та "Щ" вже редагувалися, зараз редагується символ "Щ", причому його "хвостик" знаходиться в небажаній зоні.
За потреби можна будь-якої миті змінити розгортку байтів у знайомому з вертикальною на горизонтальну, і навпаки. Для цього слід натиснути на екранну кнопку "Змінити вигляд розгортки". Операція діє одночасно всі символи знакогенератора. Після її виконання на екран буде виведено відповідне повідомлення та змінено параметри шрифту, виведені над знайомцем. Змінити напрямок розгортки неможливо, якщо це збільшує обсяг образу шрифту. Декілька слів про роботу з негативними шрифтами. Саме поняття негативного шрифту вже стало атавізмом, оскільки багато сучасних контролерів РКІ вміють інвертувати зображення самостійно. Проте можливість створення та редагування негативних шрифтів у програмі є. Жодних відмінностей від роботи з позитивним шрифтом немає. Символи у будь-якому разі виглядають на екрані комп'ютера позитивними. Перетворення їх образів на негативні відбувається у процесі запису створеного шрифту на диск комп'ютера. Забігаючи вперед, зауважимо, що при завантаженні для редагування файлу, що містить негативний шрифт, інформація заноситься в образ знакогенератора в пам'яті комп'ютера в інвертованому (позитивному) вигляді та інвертується ще раз під час запису на диск. Після встановлення параметрів шрифту у вікні програми з'являється ще одна панель, що має назву "Вихідний файл". У ній розташовані елементи, що управляють, що дозволяють записати на диск файл знакогенератора в необхідному форматі. У списку "Формат рядка" (рис. 8) вибирають структуру рядка у вихідному текстовому файлі. Послідовності шістнадцяткових чисел, розділених комами, може передувати ключове слово "Data" або ".Db" або воно може бути відсутнім.
У списку "Формат числа" (рис. 9) вибирають спосіб представлення шістнадцяткового числа. До двох шістнадцяткових цифр NN може бути доданий один із наявних у списку префіксів або суфікс "h".
Позначивши пункт "Негативний шрифт", можна створити файл із таким шрифтом. Для запису файлу на диск комп'ютера необхідно натиснути кнопку "Зберегти знакогенератор". Шлях до нього вказують у стандартному діалозі 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. Автор: О. Савченко Дивіться інші статті розділу Радіоаматор-конструктор. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Машина для проріджування квітів у садах
02.05.2024 Удосконалений мікроскоп інфрачервоного діапазону
02.05.2024 Пастка для комах
01.05.2024
Інші цікаві новини: ▪ Створено пружну форму вуглецю ▪ Кажани - головні переносники вірусних захворювань ▪ Сильні емоції поєднують людей ▪ Надстійкий лазер зробить GPS точнішим Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ Розділ сайту Типові інструкції з охорони праці (ТОІ). Добірка статей ▪ стаття Друга частина Мерлезонського балету. Крилатий вислів ▪ стаття Як довго людина може обходитися без їжі? Детальна відповідь ▪ стаття Охорона праці працівників лісового господарства ▪ стаття Вороніння заліза та сталі. Прості рецепти та поради ▪ стаття Телефонні адаптери для автозапису інформації Енциклопедія радіоелектроніки та електротехніки
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |