Запись от AZM на субдомене electronics-and-mechanics |
Все записи на субдомене: Электроника и механика (записки от AZM) |
Русские растровые шрифты с кодировкой WIN1251 размеры 8x8 и 8x16 скачать бесплатно. |
Как устроен растровый шрифт?Растровый шрифт, это такой шрифт в котором каждый бит байта шрифта определяет какая точка должна быть закрашена а какая пуста, соответственно бит =1 точка закрашена, а бит =0 точка пуста.Поясню на примере, как устроен растровый шрифт. Скажем мы имеем байт со значением 126, в шестнадцатеричке это 7E, а в бинарке: 01111110 Теперь представим что байт это линия на экране и там, где биты установлены в 1 там точки, а где 0 там фон. А теперь ход конём! Представим, что у нас 8 байт и тот самый (с значением 126) в серединке: 00000000 00111110 01000010 01000010 01111110 01000010 01000010 00000000Для наглядности заменю 1 на символ "@" а нули на символ "_": ________ __@@@@@_ _@____@_ _@____@_ _@@@@@@_ _@____@_ _@____@_ ________Вот так, байт за байтом и составлены символы в растровом шрифте из отдельных пикселей. Естественно есть 2 варианта растровых шрифтов: - горизонтальные (у которых байт определяет точки в одной горизонтальной линии); - вертикальные (у которых байт определяет точки в одной вертикальной линии). Например, в MS-DOS шрифты горизонтальные, а для некоторых (если не для большинства) термопринтеров шрифты вертикальные. Растровые шрифты моноширные (ширина всех символов одинаковая), с одной стороны это плюс - легко вычислить где окажется тот или иной символ в выводе и можно даже картинки рисовать символами, а с другой минус - даже ради точки "." приходится тратить поле 8х8 точек на устройстве вывода (на бумаге или дисплее). Плюсы и минусы растровых шрифтов.+ Для вывода текста растровым шрифтом требуется минимум вычислительной мощности.- Растровый шрифт не масштабируется. Есть и другие плюсы и минусы, но они проявляются в конкрытных задачах по разному. Так или иначе, в ряде случаев, например при работе с дисплеем от Nokia 3310 из микроконтроллера ATmega8 или при создании драйвера для не русифицированного китайского чекового принтера на который невозможно найти документацию, лучше всего подходит именно применение растрового шрифта. Скачать русские растровые шрифты 8x8 и 8x16 с кодировкой WIN1251Русские растровые шрифты 8x8 и 8x16 с кодировкой WIN1251Исходный код примера на C (си) для работы с растровым шрифтомunsigned char MyFont[]; // сюда прежде нужно положить бинарные данные из шрифта 8x8 void OutputStringToBufferType8x8(){ unsigned char MyString[]="Алилуя!"; unsigned char OuBuffer[7*8]; // "Алилуя!" - 7 символов, шрифт 8 байт (горизонтальных линий) на символ unsigned char n, m, offs, symb; unsigned char posou=0; for (n=0; n<250; n++){ symb=MyString[n]; if (symb == 0){n=250;}else{ offs=symb*8; // позиция откуда взять байты шрифта из которых будет сформирован символ for(m=0; m<8; m++){OuBuffer[posou]=MyFont[offs]; posou=posou+1; offs=offs+1;} // копируем 8 байт шрифта со смещения соответствующего коду символа в буфер вывода } } /* здесь можно уже выводить готовую строку нарисованную нашим шрифтом на устройство вывода. Для китайского термопринтера это было просто: нужно было лишь сунуть в COM порт команду "печатай графическую строку" и загнять далее побайтно то, что надо напечатать в этой строке, то есть просто перегнать байты из OuBuffer в COM порт. Кстати, там шрифт был нужен перевёрнутый, то есть вертикальный, а в zip архиве я выкладываю горизонтальные. Перевернуть шрифт на 90 градусов просто, нужно лишь сделать процедуру: первый бит первого байта шрифта кладём в первый бит первого байта перевёртыша, второй бит первого байта шрифта кладём в первый бит второго байта перевёртыша, третий бит первого байта шрифта кладём в первый бит третьего байта перевёртыша, и так 8 раз, пока не заполним в перевертыше 8 байт, затем следующий символ 8x8 ... Естественно не надо переворачивать каждый раз при выводе символа, просто 1 раз перевернуть если надо и потом точно так же выводить текст перевертышем. */ }Это весьма простой пример исходника, лишь показывающий что надо делать для вывода текста растровым шрифтом на дисплеи, принтеры и даже в bmp картинки. |
Добавлено: 3907 дн 13 час 23 мин 4 сек назад | Внесений правок: 0 | Последняя правка: нет данных |