16+
Пятница
24 ноября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
SciFi  (24.03.2017 10:18 - 24.03.2017 12:22, файл(ы), ссылка) , в ответ на Предлагаю в один топик собрать различные пиксельные фонты. Кому не жалко (для себя на память) можно прямо в ответном сообщении грузить образец и сам фонт. автор: General
Использую утилиту ttf2pcx, она виндовые шрифты превращает в пиксельные и выгружает в виде PCX, умеет и с оттенками серого. Слепил программку, которая превращает этот PCX в массив с применением RLE, вариант с 8 оттенками серого. 
Инструкция: Запускаем ttf2pcx.exe. Выбираем шрифт, диапазон выгрузки "Min char", "Max char" - это номера из Юникода, насколько я понял. Жмём "Antialiased", "Min color = 1", "Max color = 7". Жмём "Export", сохраняем файл PCX. В графическом редакторе Gimp можно подрихтовать этот файл. Скажем, изменить ширину пробела или минуса, переместить русские буквы в нужное место таблицы, прицепить символ градуса или греческие буквы (см. приложенный пример). Приложенный сишный файл - это программа, читающая PCX файл и экспортирующая сишный массив. Программу я компилировал при помощи онлайн компилятора www.onlinecompiler.net/. Программа предполагает, что левые верхние углы букв будут находиться на равномерное сетке, поэтому при редактировании PCX файла нужно быть внимательным и не нарушать это правило. Экспортируемый массив "uint32_t bitstream[]" состоит из 32-разрядных слов. Элементарной единицей информации является полубайт. Полубайты внутри слова следуют в порядке 0x76543210, то есть первый полубайт в младших разрядах. Декодирование следует производить так: если полубайт имеет значение от 0 до 7, то он соответствует одному пикселу с этим цветом, иначе закодирована последовательность одинаковых пикселов с цветом, равным значению полубайта минус 8, а следующий полубайт даёт длину этой последовательности минус 1 (нужно было сделать минус 2, конечно, но какая разница, по большому счёту?). Также экспортируется массив структур "struct font_char chars[]", каждый элемент которого состоит из пары чисел: ширина символа и номер полубайта в массиве bitstream, соответствующего левому верхнему пикселу символа. И, наконец, экспортируется структура "struct font", которая содержит высоту шрифта в пикселах (одинаковая для всех символов), код первого символа (как правило, это 32 - код пробела) и ссылки на массивы chars и bitstream.
Прикреплённые файлы:
cNmnTdX.c (16 K)
kovujoU.c (30 K)
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII