机缘巧合

机缘巧合下,

在爱芯元智的xx开发板下进行sdk的开发.由于开发板目前我拿到是当前最新的一版(估计是样品),暂不公开开发板具体型号信息.以下简称`板子` .

很多优秀的芯片厂商,都会提供与开发板配套的完善的软件以及完善的技术支持(FAE),突然觉得爱芯的技术支持就不错.

认识

几乎涉及到图形处理的soc都会内置一些图形处理的api,我们常见的图形处理工具有开源第三方库opencv,但opencv交叉编译麻烦,移植在嵌入式平台上吃资源较多,所以,一般是选择使用它们内置的一些api去实现图像处理的操作.比如常见的图形处理操作有: 旋转,裁剪,马赛克填充,画框,osd叠图 等等. 本次主要是实现文字信息叠加. 在爱芯平台上画框有例子提供了从vin->ivps->joint->venc->rtsp 也就是从获取图形输入 - > 图像处理 -> 传入模型 -> 编码 -> 网络推流. 爱芯的git仓库中有很多例子是结合用opencv来画框和叠加字符串的.当然这些通常对格式有要求,比如长度和宽度需要指定xxx进行对齐.

比如 ax pipeline

实践记录

说明

起初是想用提供的Free type库在程序运行中去加载字库文件,然后把字符串信息转换成bitmap(每一个字符对应一个bitmap 位图),然后转换成具体的格式比如ARGB1555,然后叠加上去.后面发现叠上去的图像不对. 最后依靠我牛逼的同事给我上了一课,使用点阵字库生成工具 ,以下简称为工具 .去把需要用到的字符的具体的bitmap 导出来,然后转换成具体的格式.本次实践为通过工具 把文字信息转换为bitmap再转换为ARGB1555格式然后放在app里直接使用.后面得知,这是一种以空间换时间的方式,也是目前主流的方式.

工具下载: fontmark下载链接

工具图:

功能

可以选择字体,字号.如图.用户定义可以使用自己需要的中文字符.这意味着可以定制自己需要的中文字符.如果叠加的信息不需要英文,那么用ascill 就完全足够了.

工作流

以下实践就以我截图所见的配置选项 进行.

保存字库后生成.cpp文件,实际我只关心数组.灰度等级为1位则非黑即白.

目前fontmarkv1.4.0这个版本生成的ascil码只有96位,而不是128位,去掉了一些字符,不过,数字,字母大小写,标点符号都保留.之前老的版本是支持的.

2.保存字库出来的cpp文件是一个二维数组,每一行48的字节,总共96行.每一行代表一个字符, 对应配置和上面1号一样. 3. 把字体为:微软雅黑,字号:24 16x24,灰度级别为1进行转换: bitmap->ARGB1555 4. ARGB1555的格式意味每个像素占用2个字节, 15……0共16位,最高位也就是第15位为A,表示透明度(1表示不透明,0表示透明),R,G,B各自占用5位. 所以红色为0b1111110000000000

在这里更好的表示方式是使用结构体的位域 这一数据类型.

typedef struct m_ARGB1555

{

u16 B : 5;

u16 G : 5;

u16 R : 5;

u16 A : 1;

}ARGB1555;

这里这么写的场景: 先说明位域字段在内存中的位置是按照从低位向高位的顺序放置的. 所以在小端存储字节序(低位字节在低地址处) 结构体位域从上到下是BGRA.如果是大端存储则直接就是ARGB的顺序. 设置颜色: 如红色

ARGB15555 temp ;

temp.A = 1;

temp.B = 0;

temp.R = 0x1f;

temp.G = 0;

bitmap的灰度等级为1位,则表示每一个像素用一位表示,同理灰度等级为8位,则表示每一个像素用8位表示(这样颜色选择的范围会变宽 ) 5. 把二维数组中的每一个字节(8位)转换成ARGB的格式.

// MSB Horizontal scanning

#include

#include

#include

#include

#include "test.h"

typedef unsigned short u16;

typedef struct m_ARGB1555

{

u16 B : 5;

u16 G : 5;

u16 R : 5;

u16 A : 1;

} ARGB1555;

static ARGB1555 argb1555_blue = {0x1f, 0, 0, 1};

static ARGB1555 argb1555_green = {0, 0x1f, 0, 1};

static ARGB1555 argb1555_red = {0, 0, 0x1f, 1};

int main(void)

{

ARGB1555 *temp = &argb1555_red;

u16 *red = (u16 *)temp;

printf("//red : 0x%02x \r\n", *red);

unsigned char colourH = *red & 0x00ff;

unsigned char colourL = (*red >> 8) & 0x00ff;

int i, j, k;

printf("const unsigned char assic_argb_16_24_BLUE[]={\r\n");

for (i = 0; i < FONT_CHAR_COUNT; i++)

{

unsigned char *p = data[i];

for (j = 0; j < 24; j++) //这里的24是根据48/2得来的,每个字符占了48个字节,每次循环处理2个字节

{

unsigned char first_byte = p[j * 2];

unsigned char second_byte = p[j * 2 + 1];

for (k = 0; k < 8; k++)

{

if (first_byte & 0x80)

{

printf("0x%02x,0x%02x,", colourH, colourL);

}

else

{

printf("0x00,0x00,");

}

first_byte = first_byte << 1;

}

for (k = 0; k < 8; k++)

{

if (second_byte & 0x80)

{

printf("0x%02x,0x%02x,", colourH, colourL);

}

else

{

printf("0x00,0x00,");

}

second_byte = second_byte << 1;

}

printf("\n");

}

printf("\r\n");

}

printf("};\r\n");

}

此处的data就是保存的cpp文件的数组:

/*******************************************************************************

* This file is generated by the Bitmap FontMaker.

* refer: https://gitee.com/kerndev/FontMaker

*******************************************************************************/

#define FONT_MONOSPACE 1

#define FONT_WIDTH 16

#define FONT_HEIGHT 24

#define FONT_BPP 1

#define FONT_PITCH 2

#define FONT_CHAR_COUNT 96

static unsigned char data[][48]=

{

//U+0020( )

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,

//U+0021(!)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,

0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,

0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0022(")

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x00,0x24,0x00,0x24,0x00,

0x24,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,

//U+0023(#)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x80,0x04,0x80,0x09,0x00,

0x09,0x00,0x7F,0xE0,0x09,0x00,0x09,0x00,0x12,0x00,0xFF,0xC0,0x12,0x00,0x12,0x00,

0x24,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0024($)

0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x0F,0x00,0x16,0x80,0x36,0x00,

0x36,0x00,0x36,0x00,0x3E,0x00,0x1E,0x00,0x07,0x80,0x07,0x80,0x06,0xC0,0x06,0xC0,

0x06,0xC0,0x26,0x80,0x1F,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0025(%)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x08,0x66,0x10,0x42,0x20,

0x42,0x20,0x42,0x40,0x66,0x80,0x3C,0x80,0x01,0x3C,0x01,0x66,0x02,0x42,0x04,0x42,

0x04,0x42,0x08,0x66,0x10,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0026(&)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x18,0xC0,0x18,0xC0,

0x18,0xCC,0x1D,0xCC,0x0F,0x8C,0x1F,0x8C,0x31,0xC8,0x60,0xC8,0x60,0x78,0x60,0x30,

0x60,0x30,0x30,0xD8,0x1F,0x8F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0027(')

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,

0x20,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,

//U+0028(()

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,

0x60,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,

//U+0029())

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x60,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,

0x18,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,

//U+002A(*)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x6B,0x00,

0x1C,0x00,0x14,0x00,0x14,0x00,0x22,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,

//U+002B(+)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x3F,0xE0,0x02,0x00,0x02,0x00,

0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+002C(,)

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,0x60,0x00,0x40,0x00,0xC0,0x00,0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,

//U+002D(-)

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,0x7E,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+002E(.)

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,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+002F(/)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x06,0x00,0x06,0x00,

0x06,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0030(0)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x31,0x80,0x31,0x80,

0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,

0x31,0x80,0x31,0x80,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0031(1)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x0E,0x00,0x36,0x00,

0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,

0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0032(2)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x21,0x80,0x00,0xC0,

0x00,0xC0,0x00,0xC0,0x00,0xC0,0x01,0x80,0x07,0x00,0x0E,0x00,0x1C,0x00,0x30,0x00,

0x60,0x00,0x60,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0033(3)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x23,0x80,0x01,0x80,

0x01,0x80,0x01,0x80,0x03,0x00,0x3C,0x00,0x03,0x80,0x00,0xC0,0x00,0xC0,0x00,0xC0,

0x00,0xC0,0x41,0x80,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0034(4)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x80,0x07,0x80,

0x05,0x80,0x0D,0x80,0x19,0x80,0x31,0x80,0x61,0x80,0x41,0x80,0xFF,0xE0,0x01,0x80,

0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0035(5)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x3F,0x00,0x01,0x80,0x00,0xC0,0x00,0xC0,0x00,0xC0,

0x00,0xC0,0x21,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0036(6)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x18,0x80,0x30,0x00,

0x20,0x00,0x60,0x00,0x6F,0x00,0x71,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,

0x30,0xC0,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0037(7)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,0x80,0x01,0x80,

0x01,0x00,0x03,0x00,0x02,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,

0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0038(8)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x19,0x80,0x30,0xC0,

0x30,0xC0,0x30,0xC0,0x19,0x80,0x0F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,

0x60,0xC0,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0039(9)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x61,0x80,

0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0xC0,0x1E,0xC0,0x00,0xC0,0x00,0x80,

0x01,0x80,0x23,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+003A(:)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+003B(;)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x60,0x00,0x40,0x00,0xC0,0x00,0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,

//U+003C(<)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x20,0x00,0xE0,0x03,0x80,0x0E,0x00,0x18,0x00,0x0E,0x00,0x03,0x80,

0x00,0xE0,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+003D(=)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+003E(>)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x10,0x00,0x1C,0x00,0x07,0x00,0x01,0xC0,0x00,0x60,0x01,0xC0,0x07,0x00,

0x1C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+003F(?)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x47,0x00,0x03,0x00,

0x03,0x00,0x07,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,

0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0040(@)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x06,0x04,0x08,0x03,

0x18,0x01,0x10,0xF0,0x21,0x10,0x22,0x10,0x22,0x10,0x22,0x10,0x22,0x11,0x23,0x31,

0x11,0xCE,0x10,0x00,0x08,0x00,0x06,0x04,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0041(A)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x07,0x80,0x07,0x80,

0x0F,0x80,0x0C,0xC0,0x0C,0xC0,0x1C,0xC0,0x18,0x60,0x38,0x60,0x3F,0xE0,0x60,0x30,

0x60,0x30,0x60,0x30,0xC0,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0042(B)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x31,0xC0,0x30,0xC0,

0x30,0xC0,0x30,0xC0,0x31,0x80,0x3F,0x00,0x30,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,

0x30,0x60,0x30,0xC0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0043(C)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x1C,0x20,0x38,0x00,

0x30,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x30,0x00,

0x30,0x00,0x1C,0x20,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0044(D)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x30,0xE0,0x30,0x30,

0x30,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x30,

0x30,0x20,0x30,0xC0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0045(E)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x3F,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0046(F)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x3F,0x80,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0047(G)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x0C,0x10,0x18,0x00,

0x30,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x61,0xF0,0x60,0x30,0x60,0x30,0x30,0x30,

0x30,0x30,0x18,0x30,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0048(H)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x18,0x30,0x18,0x30,0x18,

0x30,0x18,0x30,0x18,0x30,0x18,0x3F,0xF8,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,

0x30,0x18,0x30,0x18,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0049(I)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+004A(J)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,

0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,

0x0C,0x00,0x18,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+004B(K)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0xC0,0x31,0x80,

0x33,0x00,0x36,0x00,0x3C,0x00,0x38,0x00,0x3C,0x00,0x34,0x00,0x36,0x00,0x33,0x00,

0x31,0x80,0x30,0xC0,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+004C(L)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+004D(M)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x3C,0x07,0x3C,0x0F,

0x34,0x0B,0x36,0x0B,0x32,0x1B,0x33,0x13,0x33,0x13,0x31,0xB3,0x31,0xA3,0x30,0xA3,

0x30,0xE3,0x30,0xC3,0x30,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+004E(N)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x18,0x3C,0x18,0x3C,0x18,

0x36,0x18,0x36,0x18,0x33,0x18,0x33,0x18,0x31,0x98,0x30,0x98,0x30,0xD8,0x30,0x58,

0x30,0x78,0x30,0x38,0x30,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+004F(O)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x1C,0x30,0x30,0x18,

0x30,0x18,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x30,0x18,

0x30,0x18,0x18,0x30,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0050(P)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x31,0x80,0x30,0xC0,

0x30,0xC0,0x30,0xC0,0x30,0xC0,0x31,0x80,0x3F,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0051(Q)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x1C,0x30,0x30,0x18,

0x30,0x18,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x30,0x18,

0x30,0x18,0x18,0x30,0x07,0xF0,0x00,0x18,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0052(R)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x30,0xC0,0x30,0x60,

0x30,0x60,0x30,0x60,0x30,0x60,0x30,0xC0,0x3F,0x80,0x31,0x80,0x30,0xC0,0x30,0x60,

0x30,0x60,0x30,0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0053(S)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x31,0x00,0x60,0x00,

0x60,0x00,0x60,0x00,0x70,0x00,0x3C,0x00,0x0F,0x00,0x07,0x00,0x01,0x80,0x01,0x80,

0x01,0x80,0x43,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0054(T)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xC0,0x0C,0x00,0x0C,0x00,

0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,

0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0055(U)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,

0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,

0x18,0x20,0x18,0x60,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0056(V)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x60,0x60,0x60,0x60,

0x60,0x60,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x19,0x80,0x19,0x80,0x19,0x80,0x0F,0x00,

0x0F,0x00,0x0F,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0057(W)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x61,0xE1,

0x61,0xE1,0x61,0x61,0x21,0x21,0x33,0x33,0x33,0x33,0x32,0x13,0x1A,0x12,0x1E,0x1E,

0x1E,0x1E,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0058(X)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x60,0x60,0x30,0xC0,

0x11,0x80,0x19,0x80,0x0F,0x00,0x06,0x00,0x06,0x00,0x0F,0x00,0x19,0x80,0x38,0x80,

0x30,0xC0,0x60,0x60,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0059(Y)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x60,0x60,0xC0,0x60,0xC0,

0x30,0x80,0x39,0x80,0x19,0x80,0x1F,0x00,0x0F,0x00,0x06,0x00,0x06,0x00,0x06,0x00,

0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+005A(Z)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xE0,0x00,0xC0,0x01,0x80,

0x03,0x80,0x03,0x00,0x07,0x00,0x06,0x00,0x0C,0x00,0x1C,0x00,0x18,0x00,0x38,0x00,

0x30,0x00,0x60,0x00,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+005B([)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,

//U+005C(\)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0xC0,0x00,0x60,0x00,

0x60,0x00,0x60,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x18,0x00,

0x0C,0x00,0x0C,0x00,0x0C,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+005D(])

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x18,0x00,0x18,0x00,

0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,

0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x78,0x00,0x00,0x00,0x00,0x00,

//U+005E(^)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0x00,0x05,0x00,

0x0D,0x80,0x08,0x80,0x18,0xC0,0x18,0xC0,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+005F(_)

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,0xFF,0x00,

//U+0060(`)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x30,0x00,0x10,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,

//U+0061(a)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x1F,0x00,0x23,0x80,0x01,0x80,0x03,0x80,0x3F,0x80,0x79,0x80,0x61,0x80,

0x61,0x80,0x63,0x80,0x3D,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0062(b)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x37,0x80,0x38,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,

0x30,0xC0,0x38,0xC0,0x37,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0063(c)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x0E,0x00,0x31,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,

0x60,0x00,0x31,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0064(d)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,

0x00,0x60,0x0F,0x60,0x30,0xE0,0x30,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,

0x70,0x60,0x30,0xE0,0x1F,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0065(e)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x0F,0x00,0x31,0x80,0x20,0xC0,0x60,0xC0,0x7F,0xC0,0x60,0x00,0x60,0x00,

0x70,0x00,0x30,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0066(f)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0xFE,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0067(g)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x0F,0x60,0x30,0xE0,0x30,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,

0x70,0x60,0x30,0xE0,0x1F,0x60,0x00,0x60,0x00,0x40,0x20,0xC0,0x1F,0x00,0x00,0x00,

//U+0068(h)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x37,0x80,0x39,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,

0x30,0xC0,0x30,0xC0,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0069(i)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,

0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,

0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+006A(j)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,

0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,

0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xC0,0x00,0x80,0x00,0x00,0x00,

//U+006B(k)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0xC0,0x31,0x80,0x33,0x00,0x36,0x00,0x3C,0x00,0x3C,0x00,0x36,0x00,

0x33,0x00,0x31,0x80,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+006C(l)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+006D(m)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x37,0x9E,0x39,0xE7,0x30,0xC3,0x30,0xC3,0x30,0xC3,0x30,0xC3,0x30,0xC3,

0x30,0xC3,0x30,0xC3,0x30,0xC3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+006E(n)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x37,0x80,0x39,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,

0x30,0xC0,0x30,0xC0,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+006F(o)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x0F,0x80,0x30,0xC0,0x30,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,

0x30,0x40,0x30,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0070(p)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x37,0x80,0x38,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,

0x30,0xC0,0x38,0xC0,0x37,0x80,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,

//U+0071(q)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x0F,0x60,0x30,0xE0,0x30,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,

0x60,0x60,0x30,0xE0,0x1F,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,

//U+0072(r)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x36,0x00,0x38,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0073(s)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x1E,0x00,0x31,0x00,0x60,0x00,0x60,0x00,0x78,0x00,0x3E,0x00,0x0F,0x00,

0x03,0x00,0x43,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0074(t)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0xFC,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0075(u)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,

0x60,0xC0,0x31,0xC0,0x1E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0076(v)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0xC1,0x80,0xC3,0x00,0x63,0x00,0x63,0x00,0x66,0x00,0x26,0x00,0x34,0x00,

0x3C,0x00,0x1C,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0077(w)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0xC3,0x0C,0xC3,0x0C,0x67,0x98,0x67,0x98,0x64,0x98,0x24,0x90,0x3C,0xF0,

0x3C,0xF0,0x18,0x60,0x18,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0078(x)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0xC1,0x80,0x63,0x00,0x26,0x00,0x36,0x00,0x1C,0x00,0x1C,0x00,0x34,0x00,

0x36,0x00,0x63,0x00,0xC1,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+0079(y)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0xC0,0xC0,0x61,0x80,0x61,0x80,0x61,0x00,0x33,0x00,0x33,0x00,0x12,0x00,

0x1E,0x00,0x0C,0x00,0x0C,0x00,0x08,0x00,0x18,0x00,0x10,0x00,0xE0,0x00,0x00,0x00,

//U+007A(z)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x7F,0x80,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,

0x30,0x00,0x60,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+007B({)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x38,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,

//U+007C(|)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,

//U+007D(})

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x30,0x00,0x30,0x00,

0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,

//U+007E(~)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x20,0x27,0x20,0x21,0xC0,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//U+007F()

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,

};

使用cmake 构建,make编译后.调用 ./xxxx.exe > argb1555_24_16x24_red.h中.从而得到ARGB1555的格式. 如何验证转换出来的格式是能用的? 在vscode 的右侧可以清晰的看到字符的轮廓. 生成的argb1555的格式如何在soc中使用?

包含转换后的头文件,也就是argb1555_24_16x24_red.h ,设置宽度和高度,16x24,接受使用soc内置的api,比如在爱芯平台中用的是ivps中的filter ,记得偏移 转换后的每个字符所占字节的偏移量.比如保存的cpp文件中,data二维数组每个字符占48个字节(bitmap),转换成argb1555后,每个字符占48*8*2=bitmap中字符所占字节*bitmap中每个字节所占像素*argb中每个像素所占字节).

渲染完后能正常显示字符串,也就是需要的文字信息.如何自定义的去显示中文字符? 把需要的汉字保存后转换后重复上面的操作就行.

效果

二维码是通过soc的内置api画框所得. 中文信息

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: