Отримуємо растрові шрифти для знакогенераторов

Іноді в практиці програмування доводиться створювати власний знакогенератор. І якщо написання коду не представляє ніяких труднощів, то питання про те, де взяти дані, що описують зображення символів, може поставити в складне становище. За допомогою пропонованих програм можна отримати кодове подання не тільки шрифтів, але і будь-яких чорно-білих зображень.

Для відтворення символів підійде будь-яка програма, що виводить текст на екран (від Блокнота до Фотошопа), але найбільше мені подобається файловий менеджер FAR - цього є кілька причин. По-перше, FAR (як осколок часів DOS), «заточений» під «моно» текст, тобто всі виведені символи матимуть однакову ширину. По-друге, при завданні шрифтів (у властивостях вікна MS-DOS, в якому виконується програма) будуть відображатися висота і ширина символу, а це дозволить (див. Малюнок) підігнати розмір під потрібний формат. Проміжні розміри шрифту задаються їх безпосереднім введенням в відповідне поле. Ну і по-третє, менеджер Far дозволяє використовувати як Windows-івську, так і DOS-івську кодування російських символів (перемикається клавішею F8, стежте тільки за правильним положенням цього перемикача!).

Пропоновані програми-конвертери працюють з графічним форматом bmp, виробляючи його порядкове сканування (зліва направо) і кодуючи утворилися ланцюжка даних відповідно до вимог компілятором. На виході виходить звичайний текстовий файл, який можна підключити до проекту. Вимога до картинки - вона повинна мати дві градації яскравості (чорне і біле) і бути шириною, кратною 8.

Програми писалися для себе, під вимоги поточного моменту, а отже не шукайте в них довідок по роботі і інших вишукувань (можливо, в майбутньому дійдуть руки і до написання єдиної універсальної програми). Нагадую також про необхідність перевірки всього завантаженого з інтернету на предмет наявності вірусів і шпигунських модулів, а також про принцип «беріть як є - все на ваш страх і ризик».

Пиксель не тасуються і переводяться так, як вони йдуть скопом в вихідному файлі (підрядник зліва направо). Тому якщо картинка являє собою горизонтальний ряд символів, то спочатку йдуть перші рядки всіх символів, потім - другі, і т.д. Такий порядок є оптимальним для реалізації більшості знакогенераторов (здогадайтеся чому!), Але ніщо не заважає розташувати символи стовпцем і отримати інше чергування - спочатку йдуть всі рядки першого символу, потім - другого і т.д.). Нижче наведено приклад графічного файлу, який можна «згодувати» програмою.

Чи включати до набір область службових символів (з кодами 0. 31) - вирішувати вам. У деяких випадках (наприклад, при роботі з графічними LCD) зображення потрібно виводити не рядки, а стовпцями. Я сподіваюся, ви вже здогадалися, що в цьому випадку необхідно розгорнути картинку на 90 град і, можливо, її дзеркально відобразити.


Приклад шрифту (розмір символів 8 х 10 точок)

Програми в архівах:

Convert3_psoc_8.rar (119 кБ) - для символів шириною 8 (а також 16, 24 і т.д.) точок.
Результат роботи - рядки «DB» в довічним 8-бітовому форматі, придатні для безпосередньої вставки в асемблерний текст.
Порядок біт - «LSB first» (молодший значущий біт йде першим, тобто біт 0 в байті відповідає самому лівому пікселю).
Ширина вихідної картинки в пікселах повинна бути кратна ширині символу.

Convert3_arm_8.rar (117 кБ) - для символів шириною 8 точок.
Результат - байти в HEX-форматі, придатні для вставки в текст на «Сі».
Порядок біт - «MSB first» (біт 7 в байті відповідає самому лівому пікселю).
Ширина вихідної картинки повинна бути кратна 8.

Convert3_arm_16.rar (114 кБ) - для символів шириною 16 точок.
Те ж, що і Convert3_arm_8.rar, але константи 8-, а 16-бітові (біт 15 відповідає самому лівому пікселю).
Ширина вихідної картинки повинна бути кратна 16.

зауваження:

1. Файли в архівах:
- Convert.exe - сама програма.
- Font.txt - все символи, розташовані по зростанню коду (починаючи з 32 - пробілу, і закінчуючи 255), для показу їх на екрані. Якщо не поміщаються, розбивайте на кілька рядків, з подальшим «склеюванням» фрагментів.
- * .bmp - приклад вхідного файлу.
- * .txt - результат роботи.

2. Менеджер Far повинен бути запущений в віконному (НЕ повноекранному!) Режимі.

3. Якщо у символів виходять «рвані» краї, то це означає, що у Windows включений «режим згладжування екранних шрифтів». На час захоплення картинок його нобхідно відключити, як це показано на зображенні нижче:


Властивості екрану -> Оформлення -> Ефекти

Схожі статті