搜索
bottom↓
回复: 49

【9.18更新】所见即所得,字符图形化时宏定义的巧用和逆用

  [复制链接]

出0入0汤圆

发表于 2014-9-17 23:50:49 | 显示全部楼层 |阅读模式
本帖最后由 didadida 于 2014-9-18 21:16 编辑

看见有坛友发帖用12864来跑ucgui,感觉很炫,尤其是那个数字的显示很漂亮,于是好奇去看了看相关的代码。于是乎,发现了这个用于字符图形化的宏定义。

#define        ________        0x0
#define        _______X        0x1
#define        ______X_        0x2
#define        ______XX        0x3
#define        _____X__        0x4
#define        _____X_X        0x5
#define        _____XX_        0x6
#define        _____XXX        0x7
#define        ____X___        0x8
#define        ____X__X        0x9
#define        ____X_X_        0xa
#define        ____X_XX        0xb
#define        ____XX__        0xc
#define        ____XX_X        0xd
#define        ____XXX_        0xe
#define        ____XXXX        0xf
#define        ___X____        0x10
#define        ___X___X        0x11
#define        ___X__X_        0x12
#define        ___X__XX        0x13
#define        ___X_X__        0x14
#define        ___X_X_X        0x15
#define        ___X_XX_        0x16
#define        ___X_XXX        0x17
#define        ___XX___        0x18
#define        ___XX__X        0x19
#define        ___XX_X_        0x1a
#define        ___XX_XX        0x1b
#define        ___XXX__        0x1c
#define        ___XXX_X        0x1d
#define        ___XXXX_        0x1e
#define        ___XXXXX        0x1f
#define        __X_____        0x20
#define        __X____X        0x21
#define        __X___X_        0x22
#define        __X___XX        0x23
#define        __X__X__        0x24
#define        __X__X_X        0x25
#define        __X__XX_        0x26
#define        __X__XXX        0x27
#define        __X_X___        0x28
#define        __X_X__X        0x29
#define        __X_X_X_        0x2a
#define        __X_X_XX        0x2b
#define        __X_XX__        0x2c
#define        __X_XX_X        0x2d
#define        __X_XXX_        0x2e
#define        __X_XXXX        0x2f
#define        __XX____        0x30
#define        __XX___X        0x31
#define        __XX__X_        0x32
#define        __XX__XX        0x33
#define        __XX_X__        0x34
#define        __XX_X_X        0x35
#define        __XX_XX_        0x36
#define        __XX_XXX        0x37
#define        __XXX___        0x38
#define        __XXX__X        0x39
#define        __XXX_X_        0x3a
#define        __XXX_XX        0x3b
#define        __XXXX__        0x3c
#define        __XXXX_X        0x3d
#define        __XXXXX_        0x3e
#define        __XXXXXX        0x3f
#define        _X______        0x40
#define        _X_____X        0x41
#define        _X____X_        0x42
#define        _X____XX        0x43
#define        _X___X__        0x44
#define        _X___X_X        0x45
#define        _X___XX_        0x46
#define        _X___XXX        0x47
#define        _X__X___        0x48
#define        _X__X__X        0x49
#define        _X__X_X_        0x4a
#define        _X__X_XX        0x4b
#define        _X__XX__        0x4c
#define        _X__XX_X        0x4d
#define        _X__XXX_        0x4e
#define        _X__XXXX        0x4f
#define        _X_X____        0x50
#define        _X_X___X        0x51
#define        _X_X__X_        0x52
#define        _X_X__XX        0x53
#define        _X_X_X__        0x54
#define        _X_X_X_X        0x55
#define        _X_X_XX_        0x56
#define        _X_X_XXX        0x57
#define        _X_XX___        0x58
#define        _X_XX__X        0x59
#define        _X_XX_X_        0x5a
#define        _X_XX_XX        0x5b
#define        _X_XXX__        0x5c
#define        _X_XXX_X        0x5d
#define        _X_XXXX_        0x5e
#define        _X_XXXXX        0x5f
#define        _XX_____        0x60
#define        _XX____X        0x61
#define        _XX___X_        0x62
#define        _XX___XX        0x63
#define        _XX__X__        0x64
#define        _XX__X_X        0x65
#define        _XX__XX_        0x66
#define        _XX__XXX        0x67
#define        _XX_X___        0x68
#define        _XX_X__X        0x69
#define        _XX_X_X_        0x6a
#define        _XX_X_XX        0x6b
#define        _XX_XX__        0x6c
#define        _XX_XX_X        0x6d
#define        _XX_XXX_        0x6e
#define        _XX_XXXX        0x6f
#define        _XXX____        0x70
#define        _XXX___X        0x71
#define        _XXX__X_        0x72
#define        _XXX__XX        0x73
#define        _XXX_X__        0x74
#define        _XXX_X_X        0x75
#define        _XXX_XX_        0x76
#define        _XXX_XXX        0x77
#define        _XXXX___        0x78
#define        _XXXX__X        0x79
#define        _XXXX_X_        0x7a
#define        _XXXX_XX        0x7b
#define        _XXXXX__        0x7c
#define        _XXXXX_X        0x7d
#define        _XXXXXX_        0x7e
#define        _XXXXXXX        0x7f
#define        X_______        0x80
#define        X______X        0x81
#define        X_____X_        0x82
#define        X_____XX        0x83
#define        X____X__        0x84
#define        X____X_X        0x85
#define        X____XX_        0x86
#define        X____XXX        0x87
#define        X___X___        0x88
#define        X___X__X        0x89
#define        X___X_X_        0x8a
#define        X___X_XX        0x8b
#define        X___XX__        0x8c
#define        X___XX_X        0x8d
#define        X___XXX_        0x8e
#define        X___XXXX        0x8f
#define        X__X____        0x90
#define        X__X___X        0x91
#define        X__X__X_        0x92
#define        X__X__XX        0x93
#define        X__X_X__        0x94
#define        X__X_X_X        0x95
#define        X__X_XX_        0x96
#define        X__X_XXX        0x97
#define        X__XX___        0x98
#define        X__XX__X        0x99
#define        X__XX_X_        0x9a
#define        X__XX_XX        0x9b
#define        X__XXX__        0x9c
#define        X__XXX_X        0x9d
#define        X__XXXX_        0x9e
#define        X__XXXXX        0x9f
#define        X_X_____        0xa0
#define        X_X____X        0xa1
#define        X_X___X_        0xa2
#define        X_X___XX        0xa3
#define        X_X__X__        0xa4
#define        X_X__X_X        0xa5
#define        X_X__XX_        0xa6
#define        X_X__XXX        0xa7
#define        X_X_X___        0xa8
#define        X_X_X__X        0xa9
#define        X_X_X_X_        0xaa
#define        X_X_X_XX        0xab
#define        X_X_XX__        0xac
#define        X_X_XX_X        0xad
#define        X_X_XXX_        0xae
#define        X_X_XXXX        0xaf
#define        X_XX____        0xb0
#define        X_XX___X        0xb1
#define        X_XX__X_        0xb2
#define        X_XX__XX        0xb3
#define        X_XX_X__        0xb4
#define        X_XX_X_X        0xb5
#define        X_XX_XX_        0xb6
#define        X_XX_XXX        0xb7
#define        X_XXX___        0xb8
#define        X_XXX__X        0xb9
#define        X_XXX_X_        0xba
#define        X_XXX_XX        0xbb
#define        X_XXXX__        0xbc
#define        X_XXXX_X        0xbd
#define        X_XXXXX_        0xbe
#define        X_XXXXXX        0xbf
#define        XX______        0xc0
#define        XX_____X        0xc1
#define        XX____X_        0xc2
#define        XX____XX        0xc3
#define        XX___X__        0xc4
#define        XX___X_X        0xc5
#define        XX___XX_        0xc6
#define        XX___XXX        0xc7
#define        XX__X___        0xc8
#define        XX__X__X        0xc9
#define        XX__X_X_        0xca
#define        XX__X_XX        0xcb
#define        XX__XX__        0xcc
#define        XX__XX_X        0xcd
#define        XX__XXX_        0xce
#define        XX__XXXX        0xcf
#define        XX_X____        0xd0
#define        XX_X___X        0xd1
#define        XX_X__X_        0xd2
#define        XX_X__XX        0xd3
#define        XX_X_X__        0xd4
#define        XX_X_X_X        0xd5
#define        XX_X_XX_        0xd6
#define        XX_X_XXX        0xd7
#define        XX_XX___        0xd8
#define        XX_XX__X        0xd9
#define        XX_XX_X_        0xda
#define        XX_XX_XX        0xdb
#define        XX_XXX__        0xdc
#define        XX_XXX_X        0xdd
#define        XX_XXXX_        0xde
#define        XX_XXXXX        0xdf
#define        XXX_____        0xe0
#define        XXX____X        0xe1
#define        XXX___X_        0xe2
#define        XXX___XX        0xe3
#define        XXX__X__        0xe4
#define        XXX__X_X        0xe5
#define        XXX__XX_        0xe6
#define        XXX__XXX        0xe7
#define        XXX_X___        0xe8
#define        XXX_X__X        0xe9
#define        XXX_X_X_        0xea
#define        XXX_X_XX        0xeb
#define        XXX_XX__        0xec
#define        XXX_XX_X        0xed
#define        XXX_XXX_        0xee
#define        XXX_XXXX        0xef
#define        XXXX____        0xf0
#define        XXXX___X        0xf1
#define        XXXX__X_        0xf2
#define        XXXX__XX        0xf3
#define        XXXX_X__        0xf4
#define        XXXX_X_X        0xf5
#define        XXXX_XX_        0xf6
#define        XXXX_XXX        0xf7
#define        XXXXX___        0xf8
#define        XXXXX__X        0xf9
#define        XXXXX_X_        0xfa
#define        XXXXX_XX        0xfb
#define        XXXXXX__        0xfc
#define        XXXXXX_X        0xfd
#define        XXXXXXX_        0xfe
#define        XXXXXXXX        0xff

使用的时候,可以用如下的方式定义图形化的字符

GUI_CONST_STORAGE unsigned char acFont8x10ASCII_0032[10] = { /* code 0032 */
  _XXXX___,
  XX__XX__,
  XX__XX__,
  ____XX__,
  ___XX___,
  __XX____,
  _XX_____,
  XX__XX__,
  XXXXXX__,
  ________};

GUI_CONST_STORAGE unsigned char acFont24_ASCII_0024[ 48] = { /* code 0024 */
  ________,________,
  ________,________,
  ________,________,
  _____X__,________,
  ___XXXXX,________,
  __XXXXXX,X_______,
  _XXX_X_X,XX______,
  _XX__X__,XX______,
  _XX__X__,________,
  _XXX_X__,________,
  __XXXXX_,________,
  ____XXXX,X_______,
  _____X_X,XX______,
  _____X__,XX______,
  _____X__,XX______,
  _XX__X__,XX______,
  _XXX_X_X,XX______,
  __XXXXXX,X_______,
  ___XXXXX,________,
  _____X__,________,
  _____X__,________,
  ________,________,
  ________,________,
  ________,________};

事情到这里还没结束,因为ucGUI里边同时存在如下的定义方式

GUI_CONST_STORAGE unsigned char GUI_Pixels_ArrowL[150] = {
  0x40, 0x00, 0x00, 0x00, 0x00,
  0x50, 0x00, 0x00, 0x00, 0x00,
  0x64, 0x00, 0x00, 0x00, 0x00,
  0x69, 0x00, 0x00, 0x00, 0x00,
  0x6A, 0x40, 0x00, 0x00, 0x00,
  0x6A, 0x90, 0x00, 0x00, 0x00,
  0x6A, 0xA4, 0x00, 0x00, 0x00,
  0x6A, 0xA9, 0x00, 0x00, 0x00,
  0x6A, 0xAA, 0x40, 0x00, 0x00,
  0x6A, 0xAA, 0x90, 0x00, 0x00,
  0x6A, 0xAA, 0xA4, 0x00, 0x00,
  0x6A, 0xAA, 0xA9, 0x00, 0x00,
  0x6A, 0xAA, 0xAA, 0x40, 0x00,
  0x6A, 0xAA, 0xAA, 0x90, 0x00,
  0x6A, 0xAA, 0xAA, 0xA4, 0x00,
  0x6A, 0xAA, 0xAA, 0xA9, 0x00,
  0x6A, 0xAA, 0xAA, 0xAA, 0x40,
  0x6A, 0xAA, 0x95, 0x55, 0x50,
  0x6A, 0x9A, 0x90, 0x00, 0x00,
  0x6A, 0x46, 0xA4, 0x00, 0x00,
  0x69, 0x06, 0xA4, 0x00, 0x00,
  0x64, 0x01, 0xA9, 0x00, 0x00,
  0x50, 0x01, 0xA9, 0x00, 0x00,
  0x40, 0x00, 0x6A, 0x40, 0x00,
  0x00, 0x00, 0x6A, 0x40, 0x00,
  0x00, 0x00, 0x1A, 0x90, 0x00,
  0x00, 0x00, 0x1A, 0x90, 0x00,
  0x00, 0x00, 0x06, 0xA4, 0x00,
  0x00, 0x00, 0x06, 0xA4, 0x00,
  0x00, 0x00, 0x01, 0x50, 0x00
};

虽然名字上可以看出是一个Arrow,也就是一个箭头,但是具体什么样子非常不直观。你可能想到了,上面宏定义的形式不就很直观吗?是的,所以顺着这个思路,写了段代码(代码在后面),将宏定义转换成了字符串数组的形式

char *graph[] =
{
        "________",
        "_______X",
        "______X_",
        "______XX",
        "_____X__",
        "_____X_X",
        "_____XX_",
        "_____XXX",
        "____X___",
        "____X__X",
        "____X_X_",
        "____X_XX",
        "____XX__",
        "____XX_X",
        "____XXX_",
        "____XXXX",
        "___X____",
        "___X___X",
        "___X__X_",
        "___X__XX",
        "___X_X__",
        "___X_X_X",
        "___X_XX_",
        "___X_XXX",
        "___XX___",
        "___XX__X",
        "___XX_X_",
        "___XX_XX",
        "___XXX__",
        "___XXX_X",
        "___XXXX_",
        "___XXXXX",
        "__X_____",
        "__X____X",
        "__X___X_",
        "__X___XX",
        "__X__X__",
        "__X__X_X",
        "__X__XX_",
        "__X__XXX",
        "__X_X___",
        "__X_X__X",
        "__X_X_X_",
        "__X_X_XX",
        "__X_XX__",
        "__X_XX_X",
        "__X_XXX_",
        "__X_XXXX",
        "__XX____",
        "__XX___X",
        "__XX__X_",
        "__XX__XX",
        "__XX_X__",
        "__XX_X_X",
        "__XX_XX_",
        "__XX_XXX",
        "__XXX___",
        "__XXX__X",
        "__XXX_X_",
        "__XXX_XX",
        "__XXXX__",
        "__XXXX_X",
        "__XXXXX_",
        "__XXXXXX",
        "_X______",
        "_X_____X",
        "_X____X_",
        "_X____XX",
        "_X___X__",
        "_X___X_X",
        "_X___XX_",
        "_X___XXX",
        "_X__X___",
        "_X__X__X",
        "_X__X_X_",
        "_X__X_XX",
        "_X__XX__",
        "_X__XX_X",
        "_X__XXX_",
        "_X__XXXX",
        "_X_X____",
        "_X_X___X",
        "_X_X__X_",
        "_X_X__XX",
        "_X_X_X__",
        "_X_X_X_X",
        "_X_X_XX_",
        "_X_X_XXX",
        "_X_XX___",
        "_X_XX__X",
        "_X_XX_X_",
        "_X_XX_XX",
        "_X_XXX__",
        "_X_XXX_X",
        "_X_XXXX_",
        "_X_XXXXX",
        "_XX_____",
        "_XX____X",
        "_XX___X_",
        "_XX___XX",
        "_XX__X__",
        "_XX__X_X",
        "_XX__XX_",
        "_XX__XXX",
        "_XX_X___",
        "_XX_X__X",
        "_XX_X_X_",
        "_XX_X_XX",
        "_XX_XX__",
        "_XX_XX_X",
        "_XX_XXX_",
        "_XX_XXXX",
        "_XXX____",
        "_XXX___X",
        "_XXX__X_",
        "_XXX__XX",
        "_XXX_X__",
        "_XXX_X_X",
        "_XXX_XX_",
        "_XXX_XXX",
        "_XXXX___",
        "_XXXX__X",
        "_XXXX_X_",
        "_XXXX_XX",
        "_XXXXX__",
        "_XXXXX_X",
        "_XXXXXX_",
        "_XXXXXXX",
        "X_______",
        "X______X",
        "X_____X_",
        "X_____XX",
        "X____X__",
        "X____X_X",
        "X____XX_",
        "X____XXX",
        "X___X___",
        "X___X__X",
        "X___X_X_",
        "X___X_XX",
        "X___XX__",
        "X___XX_X",
        "X___XXX_",
        "X___XXXX",
        "X__X____",
        "X__X___X",
        "X__X__X_",
        "X__X__XX",
        "X__X_X__",
        "X__X_X_X",
        "X__X_XX_",
        "X__X_XXX",
        "X__XX___",
        "X__XX__X",
        "X__XX_X_",
        "X__XX_XX",
        "X__XXX__",
        "X__XXX_X",
        "X__XXXX_",
        "X__XXXXX",
        "X_X_____",
        "X_X____X",
        "X_X___X_",
        "X_X___XX",
        "X_X__X__",
        "X_X__X_X",
        "X_X__XX_",
        "X_X__XXX",
        "X_X_X___",
        "X_X_X__X",
        "X_X_X_X_",
        "X_X_X_XX",
        "X_X_XX__",
        "X_X_XX_X",
        "X_X_XXX_",
        "X_X_XXXX",
        "X_XX____",
        "X_XX___X",
        "X_XX__X_",
        "X_XX__XX",
        "X_XX_X__",
        "X_XX_X_X",
        "X_XX_XX_",
        "X_XX_XXX",
        "X_XXX___",
        "X_XXX__X",
        "X_XXX_X_",
        "X_XXX_XX",
        "X_XXXX__",
        "X_XXXX_X",
        "X_XXXXX_",
        "X_XXXXXX",
        "XX______",
        "XX_____X",
        "XX____X_",
        "XX____XX",
        "XX___X__",
        "XX___X_X",
        "XX___XX_",
        "XX___XXX",
        "XX__X___",
        "XX__X__X",
        "XX__X_X_",
        "XX__X_XX",
        "XX__XX__",
        "XX__XX_X",
        "XX__XXX_",
        "XX__XXXX",
        "XX_X____",
        "XX_X___X",
        "XX_X__X_",
        "XX_X__XX",
        "XX_X_X__",
        "XX_X_X_X",
        "XX_X_XX_",
        "XX_X_XXX",
        "XX_XX___",
        "XX_XX__X",
        "XX_XX_X_",
        "XX_XX_XX",
        "XX_XXX__",
        "XX_XXX_X",
        "XX_XXXX_",
        "XX_XXXXX",
        "XXX_____",
        "XXX____X",
        "XXX___X_",
        "XXX___XX",
        "XXX__X__",
        "XXX__X_X",
        "XXX__XX_",
        "XXX__XXX",
        "XXX_X___",
        "XXX_X__X",
        "XXX_X_X_",
        "XXX_X_XX",
        "XXX_XX__",
        "XXX_XX_X",
        "XXX_XXX_",
        "XXX_XXXX",
        "XXXX____",
        "XXXX___X",
        "XXXX__X_",
        "XXXX__XX",
        "XXXX_X__",
        "XXXX_X_X",
        "XXXX_XX_",
        "XXXX_XXX",
        "XXXXX___",
        "XXXXX__X",
        "XXXXX_X_",
        "XXXXX_XX",
        "XXXXXX__",
        "XXXXXX_X",
        "XXXXXXX_",
        "XXXXXXXX"
};

然后剩下的就简单了,下面这小段代码就能将前面那个GUI_Pixels_ArrowL数组“图形化”到控制台窗口了,其中row代表行数,col代表列数对应的字节数,mode决定是否选择反显

void print_graph(void *arr,int row,int col,char mode)//图形输出,高位在前
{
        int i,j;
        unsigned char *ptr = (unsigned char *)arr;
        for(i = 0;i < row;i++)
        {
                for(j = 0;j < col;j++)
                {
                        if(mode)
                                printf("%s",graph[ptr[col*i+j]]);
                        else
                                printf("%s",graph[ptr[col*i+j]^0XFF]);
                }
                printf("\n");
        }
        printf("\n");
}

效果图:



顺带找出了之前用过的一个bigASCII.h码表,测试了下,效果也不错



以及,测试了一个用image2lcd转成的图片码表,效果如下



visual studio 工程代码:



代码中用到的文件:



【9.18重大更新,支持更多的码表格式,输出更自由!】

更新1:

有的码表是低位在前的,也就是正好是逆序,这个简单,写一个reverse函数就行了,另外还加入了width参数,这里边width的取值不能大于8,程序中的例子可以取6和8,分别对应asc2_1206和asc2_1608两个码表

void print_r_graph(void *arr,int row,int col,int width,char mode)//输出图形,低位在前
{
        int i,j;
        unsigned char *ptr = (unsigned char *)arr;
        for(i = 0;i < row;i++)
        {
                for(j = 0;j < col;j++)
                {
                        if(mode)
                                print_str(graph[bit_reverse_beta(ptr[col*i+j])],width);
                        else
                                print_str(graph[bit_reverse_beta(ptr[col*i+j]^0XFF)],width);
                }
                printf("\n");
        }
        printf("\n");
}

效果图:



更新2:可以将4位灰度的码表图形化输出,四路是先进行二值化(大于7和小于等于7),然后根据字符码的宽度正确的输出,可变宽度是亮点哦!

原始码表可以看另一位坛友的帖子,“这个字体漂亮吧” 里边4bit灰度值的码表。

比如下边这个就是小写字母'a'的码表

unsigned char mos_font_asc24gray_61_dat[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xCF,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xE7,0x00,
0xAF,0xF0,0xBF,0xE0,0x00,0x08,0xFF,0x0E,0xF9,0x00,0x00,0x8F,0xF0,0xFF,0x00,0x00,
0x08,0xFF,0x0F,0xF0,0x00,0x00,0xBF,0xF0,0xFF,0x70,0x00,0xAF,0xFF,0x0D,0xFE,0x00,
0xBF,0xFF,0xF0,0x7F,0xFF,0xFF,0xE9,0xFF,0x00,0x9F,0xFF,0xB0,0x0F,0xF0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,};

效果图:



可变宽度效果图:





最新的工程文件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-10-9 15:55:55 | 显示全部楼层
生命不息,折腾不止,再传一个OLED屏的。取模方式如下



显示效果如下,为方便写程序,输出为旋转90度的样子





更新代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出10入0汤圆

发表于 2014-9-18 00:17:13 | 显示全部楼层
酷哦!!!

出0入10汤圆

发表于 2014-9-18 00:30:48 | 显示全部楼层
酷,有空学学

出0入0汤圆

发表于 2014-9-18 00:34:28 | 显示全部楼层
有点蛋蛋的忧伤

出0入4汤圆

发表于 2014-9-18 02:07:09 | 显示全部楼层
很好很实用的方法

出0入0汤圆

发表于 2014-9-18 02:21:05 | 显示全部楼层
最早是大学时在周立功的ZLGFS里面见过这货。

出0入0汤圆

发表于 2014-9-18 06:46:06 | 显示全部楼层
这个有点意思!

出0入0汤圆

发表于 2014-9-18 06:57:25 | 显示全部楼层
ucGUI 里的字体就是这样定义的。

出0入0汤圆

发表于 2014-9-18 07:26:03 | 显示全部楼层
很好,感谢分享。

出0入0汤圆

发表于 2014-9-18 07:30:41 | 显示全部楼层
很实用,收藏了,谢谢~

出0入0汤圆

发表于 2014-9-18 07:55:50 | 显示全部楼层
通过反定义 ,不错

出0入0汤圆

发表于 2014-9-18 08:03:19 | 显示全部楼层
cool  学习了

出0入0汤圆

发表于 2014-9-18 08:08:51 | 显示全部楼层
第一次见

出0入0汤圆

发表于 2014-9-18 08:31:16 | 显示全部楼层
第一次见到,涨姿势

出0入0汤圆

发表于 2014-9-18 08:35:59 | 显示全部楼层
学习了,很实用

出0入16汤圆

发表于 2014-9-18 08:45:50 | 显示全部楼层
是个什么玩意儿?

出0入0汤圆

发表于 2014-9-18 08:59:45 | 显示全部楼层
请问如何应用到emWin中?楼主有研究过吗?

出0入0汤圆

发表于 2014-9-18 09:04:56 | 显示全部楼层
总算让我搞清楚了,GUI中那些定义是什么。

出0入0汤圆

 楼主| 发表于 2014-9-18 09:06:29 | 显示全部楼层
linux-0405209 发表于 2014-9-18 08:59
请问如何应用到emWin中?楼主有研究过吗?

没有研究过。请仔细看帖,我这个就是用来把十六进制的码表图形化而已,没什么实用价值,just for fun!

出0入0汤圆

发表于 2014-9-18 09:13:26 | 显示全部楼层
本帖最后由 styleno1 于 2014-9-18 09:16 编辑

初看以为楼主睿智,刚好跟多年前uCGUI的字模不谋而合。细看正文才知道就是uCGUI的,误会了。

编辑说明:修正

出0入0汤圆

发表于 2014-9-18 09:55:51 | 显示全部楼层
很酷啊

出0入0汤圆

发表于 2014-9-18 17:41:44 | 显示全部楼层
很好!多谢楼主,这就拿来试试

出0入0汤圆

 楼主| 发表于 2014-9-19 09:19:55 | 显示全部楼层
擦,帖子沉了。。。

出0入0汤圆

发表于 2014-9-19 09:28:52 | 显示全部楼层
很有意思,可以穿裤子了

出0入0汤圆

发表于 2014-9-19 09:32:37 | 显示全部楼层
一直没搞明白这种定义,搬过来用。。

出0入0汤圆

 楼主| 发表于 2014-9-19 09:49:23 | 显示全部楼层
fjl888ful 发表于 2014-9-19 09:28
很有意思,可以穿裤子了

艾玛,感动。。。其实也没啥技术含量,就是一个字符码的可视化,只不过是纯软件实现的。。。

出0入0汤圆

 楼主| 发表于 2014-9-19 15:16:58 | 显示全部楼层
本帖最后由 didadida 于 2014-9-19 15:18 编辑

“这个字体漂亮吧”帖子中,4bit灰度码表的完整测试程序如下

原帖地址-> http://www.amobbs.com/thread-5595645-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-25 21:51:10 来自手机 | 显示全部楼层
牛13                           

出0入0汤圆

发表于 2014-9-25 22:02:57 | 显示全部楼层
反定义,好方法,借鉴.

出0入0汤圆

发表于 2014-9-25 22:22:49 来自手机 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2014-9-25 22:30:05 | 显示全部楼层
不明觉厉

出0入0汤圆

 楼主| 发表于 2014-9-26 09:05:29 | 显示全部楼层

仔细看帖。。。

出0入0汤圆

发表于 2014-10-9 20:22:20 | 显示全部楼层

  又见你~~

出0入0汤圆

发表于 2014-10-11 11:02:59 | 显示全部楼层
emWin里面的引文字体就是这么定义的,不要被误导了。!

出0入0汤圆

发表于 2014-10-11 11:26:48 | 显示全部楼层
这个好东西。 。。。。

出0入0汤圆

发表于 2014-10-11 12:36:40 | 显示全部楼层
原先自己使用的都是数组的形式,不是很只管,ucgui这种方式确实不错,直接就可以看出来了。LZ的钻研精神可嘉啊

出0入0汤圆

 楼主| 发表于 2014-10-11 12:55:29 | 显示全部楼层
jiki119 发表于 2014-10-11 11:02
emWin里面的引文字体就是这么定义的,不要被误导了。!

何来的误导?我在开头就说是ucgui里边的了,况且帖子的重点在于用命令行窗口把这些字符数组显示出来。。。

出0入70汤圆

发表于 2016-4-9 16:52:57 | 显示全部楼层
方法非常直观

出0入0汤圆

发表于 2016-4-10 16:34:06 | 显示全部楼层
非常形象

出0入0汤圆

发表于 2016-4-10 16:52:32 | 显示全部楼层
哎呀,确实比较直观啊

出0入0汤圆

发表于 2016-4-10 17:02:01 | 显示全部楼层
这个不错哦

出0入0汤圆

发表于 2016-4-10 21:54:33 | 显示全部楼层
蛮好看的

出0入0汤圆

发表于 2016-4-10 22:13:56 | 显示全部楼层
不错,好东西,收藏了

出0入0汤圆

发表于 2016-4-10 23:32:13 | 显示全部楼层
厉害,扩展一下思维方式

出0入0汤圆

发表于 2016-4-10 23:49:01 | 显示全部楼层
好东西,学习了!

出0入0汤圆

发表于 2016-4-11 08:51:24 | 显示全部楼层
这确实是一个很方便,很直观的方法,一目了然,修改也是相当便利

出0入0汤圆

发表于 2016-4-11 17:31:03 | 显示全部楼层
字符直观显示,很不错,谢谢楼主

出0入0汤圆

发表于 2016-4-11 17:42:00 来自手机 | 显示全部楼层
很酷………

出0入0汤圆

发表于 2016-4-11 19:58:52 | 显示全部楼层
這個想法真好。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 04:05

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表