Як робити шрифти для пристроїв на мікроконтролерах, arm, programming

У статті розглянуті методи виготовлення простих растрових шрифтів. призначених для виведення на графічні індикатори (як, наприклад, WG240128A-FFH-V або екран від NOKIA6610 - Epson S1D15G00).

[BitFontCreator Pro 2.3]

Програма інтуїтивно-зрозуміла, дозволяє імпортувати TrueType і растрові шрифти Windows. перетворювати їх в ASM- або C-дамп, експортувати шрифт в набір BMP -картінок. Процес створення шрифту передбачає 5 стандартних кроків (представлені в меню кнопками) - import font (тут вибираєте Windows-шрифт), edit characters table (редагуєте таблицю символів і зображення символів - якщо це потрібно), configure data format (змінюєте метод, яким графічна інформація розподіляється по байтам знакогенератора), export bitmap data (отримуєте текстовий дамп знакогенератора, який можна підсунути компілятору). Кілька зауважень по використанню програми:

1. Якщо програма неліцензійна, то Вас очікують певні незручності - половина символів з шрифту представлена ​​порожнім дампом. Тому щоб згенерувати дампи для всіх символів в таблиці, доводиться викручуватися - робити дампи символів по частинах, видаляти з таблиці символів ті, чий дамп Ви вже отримали. При цьому "порожнечі" в таблиці символів зміщуються, і Ви отримуєте можливість робити дампи інших символів (які до цього були зіпсовані, порожні).

2. Найзручніше використовувати пропорційні шрифти - у яких постійна ширина, так як для них простіше написати програмне забезпечення, що виводить символ на графічний індикатор. До пропорційним шрифтів відносяться, наприклад, Courier New і Terminal (на жаль, шрифт Terminal нерусифікованою, але зате самий маленький з пропорційних). Недолік пропорційних шрифтів - вони некрасиві і некомпактності, багато дорогоцінного вільного місця на екрані буде витрачатися даремно. З шрифтів зі змінною шириною варто придивитися до MS Serif і Small Fonts - вони спочатку розраховані на маленький розмір.

3. Так як екрани у пристроїв з мікроконтролерами зазвичай маленькі, для імпортованих шрифтів потрібно вибирати найменший розмір 8 (іноді можна вибрати 6 або навіть 5).

4. Кодування символів краще вибрати стандартну ANSI Windows 1251 (її зручно використовувати тому, що вона дозволяє використовувати рядкові константи російською мовою в середовищі програмування IAR Embedded Workbench). Ось вона:

Таке кодування (ANSI Windows +1251) найкраще підходить, оскільки більшість програм використовують саме її. Наприклад, така кодування дозволяє безпосередньо задавати і виводити російський текст в IAR Embedded Workbench.

5. Є можливість експортувати весь набір символів в BMP-картинки (File -> Export -> Bitmap Files of All Chars). Ця можливість хороша тим, що зображення всіх символів експортуються незіпсовані навіть для неліцензійної програми (немає таких штучних обмежень, як на створення текстового дампа символів). Тому якщо у Вас є конвертор bmp -> текст (наприклад, текст-дамп, зрозумілий для C-компілятора), то створення шрифту сильно спрощується. Якщо Ви знайомі з програмуванням на Windows, то написати такий конвертор можна самому, так як формат BMP досить простий. Пропоную готовий конвертор, який я написав самостійно, скачати можна тут (разом з прикладами використання).

[Генерування маленького шрифту]

Кожен символ цифри помістився в матрицю 4X6 точок, причому крайній правий стовпчик використовується для пропуску між символами (можна було б і його прибрати, але тоді незручно було б редагувати символи в картинці). Виводиться символ на екран за допомогою процедури void DrawSmallDigit (u8 x, u8 y, char sym), деталі виведення точок (процедура put_pixel) не розглядаються - це залежить від застосовуваного графічного індикатора.

[Інші інструменти і формати для растрових зображень]

X BitMap. або скорочено XBM. Це текстовий монохромний графічний формат, сумісний з мовою C і C ++. Приклад картинки в форматі XBM (з Вікіпедії):

X PixMap. або скорочено XPM. Це текстовий графічний формат з підтримкою кольору, сумісний з мовою C і C ++. Приклад картинки в форматі XPM (з Вікіпедії):

Схожі статті