嵌入式SOC之通用图像处理之OSD文字信息叠加的相关实践记录

机缘巧合

机缘巧合下,
在爱芯元智的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 就完全足够了.
工作流

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

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

目前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 <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#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,};
  1. 使用cmake 构建,make编译后.调用 ./xxxx.exe > argb1555_24_16x24_red.h中.从而得到ARGB1555的格式.

  2. 如何验证转换出来的格式是能用的?
    在这里插入图片描述
    在vscode 的右侧可以清晰的看到字符的轮廓.

  3. 生成的argb1555的格式如何在soc中使用?

  1. 包含转换后的头文件,也就是argb1555_24_16x24_red.h ,设置宽度和高度,16x24,接受使用soc内置的api,比如在爱芯平台中用的是ivps中的filter ,记得偏移 转换后的每个字符所占字节的偏移量.比如保存的cpp文件中,data二维数组每个字符占48个字节(bitmap),转换成argb1555后,每个字符占48*8*2=bitmap中字符所占字节*bitmap中每个字节所占像素*argb中每个像素所占字节).
  1. 渲染完后能正常显示字符串,也就是需要的文字信息.
  2. 如何自定义的去显示中文字符?
    在这里插入图片描述
    把需要的汉字保存后转换后重复上面的操作就行.
效果

二维码是通过soc的内置api画框所得.
在这里插入图片描述
中文信息
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2661684.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

win10安装ffmpeg

1 ffmpeg官网下载 官网地址&#xff1a;https://ffmpeg.org/ ffmpeg可执行程序下载地址&#xff1a;https://www.gyan.dev/ffmpeg/builds/ ffmpeg官网文档&#xff1a;https://ffmpeg.org/documentation.html 选择对应的版本点解下载可执行程序包&#xff0c;比如6.1版本的…

Linux操作系统(文件系统管理fdisk)

操作系统的两种启动模式Legacy BIOS 和 UEFI Legacy BIOS&#xff08;Basic Input/Output System,基本输入/输出系统&#xff09; 在开机时需要自检&#xff0c;启动过程较复杂。且传统的BIOS无法识别GPT&#xff08;GUID Partition Table&#xff09;分区表&#xff0c;只能识…

Windows上ModbusTCP模拟Master与Slave工具的使用

场景 Modbus Slave 与 Modbus Poll主从设备模拟软件与Configure Virtual Serial串口模拟软件使用&#xff1a; Modebus Slave 与 Modbus Poll主从设备模拟软件与Configure Virtual Serial串口模拟软件使用_modbus poll激活-CSDN博客 数据对接协议为Modbus TCP,本地开发需要使…

2023教程发布最后一个教程 | R语言绘图汇总

2023年总结 2023年即将结束&#xff0c;我们即将迎来2024年。2023年&#xff0c;我们做了什么呢&#xff1f;&#xff1f;这个是个值得深思的问题…? 12月份是个快乐且痛苦时间节点。前一段时间&#xff0c;单位需要提交2023年工作总结&#xff0c;真的是憋了好久才可以下笔…

众和策略:人工智能风起云涌 算力基建支撑加速前进

2023年&#xff0c;人工智能技术完结质的飞跃。通过生成式AI&#xff08;AIGC&#xff09;技术&#xff0c;人们可用自然语言与机器进行便捷交互&#xff0c;并将海量的数据通过训练、推理&#xff0c;快速转化为出产力&#xff0c;发生实践商业价值。 AI技术加快向各行各业渗…

HarmonyOS自学-Day4(TodoList案例)

目录 文章声明⭐⭐⭐让我们开始今天的学习吧&#xff01;TodoList小案例 文章声明⭐⭐⭐ 该文章为我&#xff08;有编程语言基础&#xff0c;非编程小白&#xff09;的 HarmonyOS自学笔记&#xff0c;此类文章笔记我会默认大家都学过前端相关的知识知识来源为 HarmonyOS官方文…

LTPI协议的理解——4、LTPI链路初始化以及运行

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 LTPI协议的理解——4、LTPI链路初始化以及运行 前言状态图Link TrainingLink DetectLink SpeedLink Training Example Link ConfigurationAdvertiseConfigure & AcceptLi…

什么是PD快充诱骗芯片?它的原理是什么?

PD快充诱骗芯片&#xff0c;顾名思义&#xff0c;就是通过LDR6328Q PD取电芯片把pd适配器的电压给诱骗出来固定给后端设备供电。 PD诱骗芯片是受电端的一种PD协议芯片&#xff0c;它内置了PD通讯模块&#xff0c;通过与供电端&#xff08;如PD充电器&#xff09;的PD协议芯片握…

微信小程序运行机制分析

setData渲染机制 Native就是微信客户端&#xff0c;逻辑层JsCore&#xff08;js文件&#xff09;通过setdata把数据送到渲染层Webview&#xff08;小程序页面&#xff0c;wxml文件&#xff09;&#xff0c;渲染层接收到数据后就会改变对应的元素值。用户在小程序页面进行操作可…

Element UI之el-tabs的样式修改字体颜色、下划线、选中/未选中

目录 默认样式 修改默认字体颜色&#xff1a; 修改鼠标悬浮/选中字体颜色&#xff1a; 去掉长分割线并修改下划线颜色 完整代码 默认样式 注意事项&#xff1a;一定要在 <style scoped>不然修改的样式不会覆盖生效 修改默认字体颜色&#xff1a; ::v-deep .el-tabs__…

Fiddler 抓包工具的安装与使用

今天分享Fiddler 抓包工具的安装与使用&#xff0c;基于HTTP应用层协议的抓包工具。 一、下载安装 1、下载地址&#xff1a; The Ultimate Web Debugging Tool - Download Fiddler Everywhere | Telerik 选择相应类型&#xff1a; 2、下载完成 3、安装 傻瓜式安装&#xf…

Weblogic反序列化远程命令执行(CVE-2019-2725)

漏洞描述&#xff1a; CVE-2019-2725是一个Oracle weblogic反序列化远程命令执行漏洞&#xff0c;这个漏洞依旧是根据weblogic的xmldecoder反序列化漏洞&#xff0c;通过针对Oracle官网历年来的补丁构造payload来绕过。 复现过程&#xff1a; 1.访问ip&#xff1a;port 2.可…

proE各版本安装指南

下载链接 https://pan.baidu.com/s/1BSaJxvPPGeIa4YKm7xk57g?pwd0531 1.鼠标右击【Proe5.0M280(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;选择【解压到 Proe5.0M280(64bit)】&#xff08;解压的路径中不能有中文&#xff09;。 2.打开…

动态规划中的状态转移方程和最优子结构

LeetCode 64&#xff1a;给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。说明&#xff1a;每次只能向下或者向右移动一步。 这个问题的本质其实是一个背包问题。 把 i 设置为向下走&#xff0…

C# ASP.NET 实验室 检验中心 医疗LIS源码

LIS系统能够自动处理大量的医学数据&#xff0c;包括样本采集、样本处理、检测分析、报告生成等。它能够快速、准确地进行化验检测&#xff0c;提高医院的运营效率。LIS系统还提供了丰富的数据分析功能&#xff0c;能够对医院化验室的业务流程进行全面、细致的监控。 LIS系统优…

MySQL之复合查询

单表查询回顾 在讲解多表查询前&#xff0c;我们先回顾一下单表查询&#xff0c;这是因为多表查询本质上依然是单表查询&#xff08;其原因在下文中讲解多表查询时再说明&#xff09;&#xff0c;只要掌握了单表查询&#xff0c;那么想掌握多表查询是非常简单的。 在<<…

工业智能网关:plc数据采集对接mes系统

在工业自动化领域&#xff0c;制造执行系统&#xff08;MES&#xff09;与可编程逻辑控制器&#xff08;PLC&#xff09;之间的实时通信对于提高生产效率、确保产品质量和实现智能化生产至关重要。工业智能网关作为连接两者的关键设备&#xff0c;正在发挥着越来越重要的作用。…

MYSQL一一函数一一字符串函数

嘿嘿大家好我回来啦&#xff0c;今天我们要学习的是MYSQL中的函数&#xff0c;函数呢我们又分为字符串函数&#xff0c;数值函数&#xff0c;日期函数&#xff0c;流程函数来介绍&#xff0c;今天重点介绍字符串函数(从小题到案例方便你们更加深入的理解) 函数指的是一段可以直…

UE5.1_Gameplay Debugger启用

UE5.1_Gameplay Debugger启用 重点问题&#xff1a; Gamplay Debugger启用不知道&#xff1f; Apostrophe、Tilde键不知道是哪个&#xff1f; Gameplay调试程序 | 虚幻引擎文档 (unrealengine.com) Gameplay Debugger

点成案例 | 如何利用细胞计数仪在单细胞测序中评估细胞

一、概述 单细胞测序技术能够用来表征异常细胞群&#xff0c;分析稀有细胞和细胞图谱网络&#xff0c;发现异质性等。由于单细胞测序巨大的应用潜力&#xff0c;目前此技术正在经历爆炸性增长。然而&#xff0c;单细胞测序需要成本和时间的大量投资。为了确保时间和资源的投资…