横向纵向的5*7字库

来源:互联网 发布:origin由图导出数据 编辑:程序博客网 时间:2024/05/17 22:43

        对于较小的显示屏而言,对字库的显示有所苛刻,这里我们用到的是5*7的字库,不过终于找到了一个,是纵向的,与我所用的接口有所不符合,所以我转换了下,变成了横向的了。这里贴出代码,及其新的横向字库。代码在QT的控制台上缩写,之前都是VC控制台写的。

#include <QDebug>/******************************************************************************** * 从字节0xff某个高位开始往低位的方向截取长度(0~8),所得的内容 * 比如从bit6开始往低位截图长度为2,我们很快可以得知为0x60 * 这里面就是Get_Middle_Byte[7 - 6][2] ********************************************************************************/const uint8_t Get_Middle_Byte[8][9] = {    {0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff},    {0x00, 0x40, 0x60, 0x70, 0x78, 0x7c, 0x7e, 0x7f, 0x00},    {0x00, 0x20, 0x30, 0x38, 0x3c, 0x3e, 0x3f, 0x00, 0x00},    {0x00, 0x10, 0x18, 0x1c, 0x1e, 0x1f, 0x00, 0x00, 0x00},    {0x00, 0x08, 0x0c, 0x0e, 0x0f, 0x00, 0x00, 0x00, 0x00},    {0x00, 0x04, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00},    {0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    {0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},};const char g57Ascii[95][5]={            //纵向    { 0x00, 0x00, 0x00, 0x00, 0x00 },   // sp    { 0x00, 0x00, 0x2f, 0x00, 0x00 },   // !    { 0x00, 0x07, 0x00, 0x07, 0x00 },   // "    { 0x14, 0x7f, 0x14, 0x7f, 0x14 },   // #    { 0x24, 0x2a, 0x7f, 0x2a, 0x12 },   // $    { 0xc4, 0xc8, 0x10, 0x26, 0x46 },   // %    { 0x36, 0x49, 0x55, 0x22, 0x50 },   // &    { 0x00, 0x05, 0x03, 0x00, 0x00 },   // '    { 0x00, 0x1c, 0x22, 0x41, 0x00 },   // (    { 0x00, 0x41, 0x22, 0x1c, 0x00 },   // )    { 0x14, 0x08, 0x3E, 0x08, 0x14 },   // *    { 0x08, 0x08, 0x3E, 0x08, 0x08 },   // +    { 0x00, 0x00, 0x50, 0x30, 0x00 },   // ,    { 0x10, 0x10, 0x10, 0x10, 0x10 },   // -    { 0x00, 0x60, 0x60, 0x00, 0x00 },   // .    { 0x20, 0x10, 0x08, 0x04, 0x02 },   // /    { 0x3E, 0x51, 0x49, 0x45, 0x3E },   // 0    { 0x00, 0x42, 0x7F, 0x40, 0x00 },   // 1    { 0x42, 0x61, 0x51, 0x49, 0x46 },   // 2    { 0x21, 0x41, 0x45, 0x4B, 0x31 },   // 3    { 0x18, 0x14, 0x12, 0x7F, 0x10 },   // 4    { 0x27, 0x45, 0x45, 0x45, 0x39 },   // 5    { 0x3C, 0x4A, 0x49, 0x49, 0x30 },   // 6    { 0x01, 0x71, 0x09, 0x05, 0x03 },   // 7    { 0x36, 0x49, 0x49, 0x49, 0x36 },   // 8    { 0x06, 0x49, 0x49, 0x29, 0x1E },   // 9    { 0x00, 0x36, 0x36, 0x00, 0x00 },   // :    { 0x00, 0x56, 0x36, 0x00, 0x00 },   // ;    { 0x08, 0x14, 0x22, 0x41, 0x00 },   // <    { 0x14, 0x14, 0x14, 0x14, 0x14 },   // =    { 0x00, 0x41, 0x22, 0x14, 0x08 },   // >    { 0x02, 0x01, 0x51, 0x09, 0x06 },   // ?    { 0x32, 0x49, 0x59, 0x51, 0x3E },   // @    { 0x7E, 0x11, 0x11, 0x11, 0x7E },   // A    { 0x7F, 0x49, 0x49, 0x49, 0x36 },   // B    { 0x3E, 0x41, 0x41, 0x41, 0x22 },   // C    { 0x7F, 0x41, 0x41, 0x22, 0x1C },   // D    { 0x7F, 0x49, 0x49, 0x49, 0x41 },   // E    { 0x7F, 0x09, 0x09, 0x09, 0x01 },   // F    { 0x3E, 0x41, 0x49, 0x49, 0x7A },   // G    { 0x7F, 0x08, 0x08, 0x08, 0x7F },   // H    { 0x00, 0x41, 0x7F, 0x41, 0x00 },   // I    { 0x20, 0x40, 0x41, 0x3F, 0x01 },   // J    { 0x7F, 0x08, 0x14, 0x22, 0x41 },   // K    { 0x7F, 0x40, 0x40, 0x40, 0x40 },   // L    { 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // M    { 0x7F, 0x04, 0x08, 0x10, 0x7F },   // N    { 0x3E, 0x41, 0x41, 0x41, 0x3E },   // O    { 0x7F, 0x09, 0x09, 0x09, 0x06 },   // P    { 0x3E, 0x41, 0x51, 0x21, 0x5E },   // Q    { 0x7F, 0x09, 0x19, 0x29, 0x46 },   // R    { 0x46, 0x49, 0x49, 0x49, 0x31 },   // S    { 0x01, 0x01, 0x7F, 0x01, 0x01 },   // T    { 0x3F, 0x40, 0x40, 0x40, 0x3F },   // U    { 0x1F, 0x20, 0x40, 0x20, 0x1F },   // V    { 0x3F, 0x40, 0x38, 0x40, 0x3F },   // W    { 0x63, 0x14, 0x08, 0x14, 0x63 },   // X    { 0x07, 0x08, 0x70, 0x08, 0x07 },   // Y    { 0x61, 0x51, 0x49, 0x45, 0x43 },   // Z    { 0x00, 0x7F, 0x41, 0x41, 0x00 },   // [    { 0x55, 0x2A, 0x55, 0x2A, 0x55 },   // 55    { 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ]    { 0x04, 0x02, 0x01, 0x02, 0x04 },   // ^    { 0x40, 0x40, 0x40, 0x40, 0x40 },   // _    { 0x00, 0x01, 0x02, 0x04, 0x00 },   // '    { 0x20, 0x54, 0x54, 0x54, 0x78 },   // a    { 0x7F, 0x48, 0x44, 0x44, 0x38 },   // b    { 0x38, 0x44, 0x44, 0x44, 0x20 },   // c    { 0x38, 0x44, 0x44, 0x48, 0x7F },   // d    { 0x38, 0x54, 0x54, 0x54, 0x18 },   // e    { 0x08, 0x7E, 0x09, 0x01, 0x02 },   // f    { 0x0C, 0x52, 0x52, 0x52, 0x3E },   // g    { 0x7F, 0x08, 0x04, 0x04, 0x78 },   // h    { 0x00, 0x44, 0x7D, 0x40, 0x00 },   // i    { 0x20, 0x40, 0x44, 0x3D, 0x00 },   // j    { 0x7F, 0x10, 0x28, 0x44, 0x00 },   // k    { 0x00, 0x41, 0x7F, 0x40, 0x00 },   // l    { 0x7C, 0x04, 0x18, 0x04, 0x78 },   // m    { 0x7C, 0x08, 0x04, 0x04, 0x78 },   // n    { 0x38, 0x44, 0x44, 0x44, 0x38 },   // o    { 0x7C, 0x14, 0x14, 0x14, 0x08 },   // p    { 0x08, 0x14, 0x14, 0x18, 0x7C },   // q    { 0x7C, 0x08, 0x04, 0x04, 0x08 },   // r    { 0x48, 0x54, 0x54, 0x54, 0x20 },   // s    { 0x04, 0x3F, 0x44, 0x40, 0x20 },   // t    { 0x3C, 0x40, 0x40, 0x20, 0x7C },   // u    { 0x1C, 0x20, 0x40, 0x20, 0x1C },   // v    { 0x3C, 0x40, 0x30, 0x40, 0x3C },   // w    { 0x44, 0x28, 0x10, 0x28, 0x44 },   // x    { 0x0C, 0x50, 0x50, 0x50, 0x3C },   // y    { 0x44, 0x64, 0x54, 0x4C, 0x44 },   // z    { 0x00, 0x08, 0x36, 0x41, 0x00 },   // {    { 0x00, 0x00, 0x77, 0x00, 0x00 },   // |    { 0x00, 0x41, 0x36, 0x08, 0x00 },   // }    { 0x04, 0x02, 0x04, 0x08, 0x04 },   // ~};void Convert_Ver_To_Hor(uint8_t *dest, char c){    uint8_t col = 0, k = 0;    for (; col < 5; col++)    {        for (k = 1; k < 8; k++)        {            if (g57Ascii[c - 0x20][col] & Get_Middle_Byte[k][1])            {                dest[7 - k] |= Get_Middle_Byte[col][1];            }        }    }}int main(int argc, char *argv[]){    QCoreApplication a(argc, argv);    uint8_t row = 0;    uint8_t t[7];    printf("const char g57Ascii[95][7]={\r\n");    for (char c = ' '; c <= '~'; c++)    {        memset(t, 0, 7);        Convert_Ver_To_Hor(t, c);        printf("\t{ ");     //\t表示tab键        for (row = 0; row < 6; row++)        {            printf("0x%02x, ", t[row]);        }        printf("0x%02x }, //%c\r\n", t[row], c);    }    printf("};\r\n");    return a.exec();}


 

运行的打印结果为:

const char g57Ascii[95][7]={    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //    { 0x20, 0x20, 0x20, 0x20, 0x00, 0x20, 0x00 }, //!    { 0x50, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00 }, //"    { 0x50, 0x50, 0xf8, 0x50, 0xf8, 0x50, 0x50 }, //#    { 0x20, 0x78, 0xa0, 0x70, 0x28, 0xf0, 0x20 }, //$    { 0x00, 0x18, 0x98, 0x40, 0x20, 0x10, 0xc8 }, //%    { 0x60, 0x90, 0xa0, 0x40, 0xa8, 0x90, 0x68 }, //&    { 0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00 }, //'    { 0x10, 0x20, 0x40, 0x40, 0x40, 0x20, 0x10 }, //(    { 0x40, 0x20, 0x10, 0x10, 0x10, 0x20, 0x40 }, //)    { 0x00, 0x20, 0xa8, 0x70, 0xa8, 0x20, 0x00 }, //*    { 0x00, 0x20, 0x20, 0xf8, 0x20, 0x20, 0x00 }, //+    { 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x20 }, //,    { 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00 }, //-    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60 }, //.    { 0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00 }, ///    { 0x70, 0x88, 0x98, 0xa8, 0xc8, 0x88, 0x70 }, //0    { 0x20, 0x60, 0x20, 0x20, 0x20, 0x20, 0x70 }, //1    { 0x70, 0x88, 0x08, 0x10, 0x20, 0x40, 0xf8 }, //2    { 0xf8, 0x10, 0x20, 0x10, 0x08, 0x88, 0x70 }, //3    { 0x10, 0x30, 0x50, 0x90, 0xf8, 0x10, 0x10 }, //4    { 0xf8, 0x80, 0xf0, 0x08, 0x08, 0x88, 0x70 }, //5    { 0x30, 0x40, 0x80, 0xf0, 0x88, 0x88, 0x70 }, //6    { 0xf8, 0x08, 0x10, 0x20, 0x40, 0x40, 0x40 }, //7    { 0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x70 }, //8    { 0x70, 0x88, 0x88, 0x78, 0x08, 0x10, 0x60 }, //9    { 0x00, 0x60, 0x60, 0x00, 0x60, 0x60, 0x00 }, //:    { 0x00, 0x60, 0x60, 0x00, 0x60, 0x20, 0x40 }, //;    { 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10 }, //<    { 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00 }, //=    { 0x40, 0x20, 0x10, 0x08, 0x10, 0x20, 0x40 }, //>    { 0x70, 0x88, 0x08, 0x10, 0x20, 0x00, 0x20 }, //?    { 0x70, 0x88, 0x08, 0x68, 0xb8, 0x88, 0x70 }, //@    { 0x70, 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88 }, //A    { 0xf0, 0x88, 0x88, 0xf0, 0x88, 0x88, 0xf0 }, //B    { 0x70, 0x88, 0x80, 0x80, 0x80, 0x88, 0x70 }, //C    { 0xe0, 0x90, 0x88, 0x88, 0x88, 0x90, 0xe0 }, //D    { 0xf8, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xf8 }, //E    { 0xf8, 0x80, 0x80, 0xf0, 0x80, 0x80, 0x80 }, //F    { 0x70, 0x88, 0x80, 0xb8, 0x88, 0x88, 0x78 }, //G    { 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88 }, //H    { 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70 }, //I    { 0x38, 0x10, 0x10, 0x10, 0x10, 0x90, 0x60 }, //J    { 0x88, 0x90, 0xa0, 0xc0, 0xa0, 0x90, 0x88 }, //K    { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf8 }, //L    { 0x88, 0xd8, 0xa8, 0xa8, 0x88, 0x88, 0x88 }, //M    { 0x88, 0x88, 0xc8, 0xa8, 0x98, 0x88, 0x88 }, //N    { 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70 }, //O    { 0xf0, 0x88, 0x88, 0xf0, 0x80, 0x80, 0x80 }, //P    { 0x70, 0x88, 0x88, 0x88, 0xa8, 0x90, 0x68 }, //Q    { 0xf0, 0x88, 0x88, 0xf0, 0xa0, 0x90, 0x88 }, //R    { 0x78, 0x80, 0x80, 0x70, 0x08, 0x08, 0xf0 }, //S    { 0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, //T    { 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70 }, //U    { 0x88, 0x88, 0x88, 0x88, 0x88, 0x50, 0x20 }, //V    { 0x88, 0x88, 0x88, 0xa8, 0xa8, 0xa8, 0x50 }, //W    { 0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88 }, //X    { 0x88, 0x88, 0x88, 0x50, 0x20, 0x20, 0x20 }, //Y    { 0xf8, 0x08, 0x10, 0x20, 0x40, 0x80, 0xf8 }, //Z    { 0x70, 0x40, 0x40, 0x40, 0x40, 0x40, 0x70 }, //[    { 0xa8, 0x50, 0xa8, 0x50, 0xa8, 0x50, 0xa8 }, //\    { 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x70 }, //]    { 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00 }, //^    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8 }, //_    { 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00 }, //`    { 0x00, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78 }, //a    { 0x80, 0x80, 0xb0, 0xc8, 0x88, 0x88, 0xf0 }, //b    { 0x00, 0x00, 0x70, 0x80, 0x80, 0x88, 0x70 }, //c    { 0x08, 0x08, 0x68, 0x98, 0x88, 0x88, 0x78 }, //d    { 0x00, 0x00, 0x70, 0x88, 0xf8, 0x80, 0x70 }, //e    { 0x30, 0x48, 0x40, 0xe0, 0x40, 0x40, 0x40 }, //f    { 0x00, 0x78, 0x88, 0x88, 0x78, 0x08, 0x70 }, //g    { 0x80, 0x80, 0xb0, 0xc8, 0x88, 0x88, 0x88 }, //h    { 0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70 }, //i    { 0x10, 0x00, 0x30, 0x10, 0x10, 0x90, 0x60 }, //j    { 0x80, 0x80, 0x90, 0xa0, 0xc0, 0xa0, 0x90 }, //k    { 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70 }, //l    { 0x00, 0x00, 0xd0, 0xa8, 0xa8, 0x88, 0x88 }, //m    { 0x00, 0x00, 0xb0, 0xc8, 0x88, 0x88, 0x88 }, //n    { 0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70 }, //o    { 0x00, 0x00, 0xf0, 0x88, 0xf0, 0x80, 0x80 }, //p    { 0x00, 0x00, 0x68, 0x98, 0x78, 0x08, 0x08 }, //q    { 0x00, 0x00, 0xb0, 0xc8, 0x80, 0x80, 0x80 }, //r    { 0x00, 0x00, 0x70, 0x80, 0x70, 0x08, 0xf0 }, //s    { 0x40, 0x40, 0xe0, 0x40, 0x40, 0x48, 0x30 }, //t    { 0x00, 0x00, 0x88, 0x88, 0x88, 0x98, 0x68 }, //u    { 0x00, 0x00, 0x88, 0x88, 0x88, 0x50, 0x20 }, //v    { 0x00, 0x00, 0x88, 0x88, 0xa8, 0xa8, 0x50 }, //w    { 0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88 }, //x    { 0x00, 0x00, 0x88, 0x88, 0x78, 0x08, 0x70 }, //y    { 0x00, 0x00, 0xf8, 0x10, 0x20, 0x40, 0xf8 }, //z    { 0x10, 0x20, 0x20, 0x40, 0x20, 0x20, 0x10 }, //{    { 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20 }, //|    { 0x40, 0x20, 0x20, 0x10, 0x20, 0x20, 0x40 }, //}    { 0x00, 0x40, 0xa8, 0x10, 0x00, 0x00, 0x00 }, //~};


 

0 0
原创粉丝点击