ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
5 августа
1532833 Топик полностью
il-2 (28.07.2025 07:26, просмотров: 70) ответил il-2 на Наверно не совсем по теме. Шрифты растровые 6х8 и 6х10, cp1251
Раз тема всплыла, поделюсь своим ноу-хао (во всяком случае я не видел чтобы так делали), хотя идея проста как валенок :-) Вращение, отзеркаливание, утолщение и пр. манипуляции со шрифтом без его перерисовки. 

Выкладываю файл _cp1251_6x8.h, который отличается от того что есть в архиве наличикм макроса _FONT_SYM() при определении графики символа.

Ну а теперь, с помощью нехитрой манипуляции можно делать с этим символом что угодно (в самом широком смысле этого слова).

#if ( DISP_ORIENTATION == FALSE ) // 180 grad rotation

#define _BROT(b) ( (((b)&0x01)?0x80:0) | (((b)&0x02)?0x40:0) | (((b)&0x04)?0x20:0) | (((b)&0x08)?0x10:0) | (((b)&0x10)?0x08:0) | (((b)&0x20)?0x04:0) | (((b)&0x40)?0x02:0) | (((b)&0x80)?0x01:0) )

#define _FONT_SYM(b1,b2,b3,b4,b5,b6) _BROT(b6),_BROT(b5),_BROT(b4),_BROT(b3),_BROT(b2),_BROT(b1)

#else

#define _FONT_SYM(b1,b2,b3,b4,b5,b6) b1,b2,b3,b4,b5,b6

#endif

#include "_cp1251_6x8.h" /* Load 6x8 font */


...

static uint8_t const _cp1251_6x8[256][6] =

{

{ _FONT_SYM(

0x7E, /* .¤¤¤¤¤¤. */

0x81, /* ¤......¤ */

0xBD, /* ¤.¤¤¤¤.¤ */

0xAD, /* ¤.¤¤.¤.¤ */

0x81, /* ¤......¤ */

0x7E /* .¤¤¤¤¤¤. */

) }

,

{ _FONT_SYM(

0x7E, /* .¤¤¤¤¤¤. */

0xDB, /* ¤¤.¤¤.¤¤ */

0xCF, /* ¤¤¤¤..¤¤ */

0xDB, /* ¤¤.¤¤.¤¤ */

0x7E, /* .¤¤¤¤¤¤. */

0x00 /* ........ */

) }

,


_cp1251_6x8.h