前言
在调试屏的过程中,有时候需要显示某一张图片的内容,而代码是直接识别的到十六进制的,而无法识别bmp,jpg,png等图片的内容。若一张图片我们想让它显示在屏上,而不需要通过上层刷下来,则可在驱动层直接调用刷屏函数刷图片的内容。而这个内容,则需要一个小工具来转换成一个数组,以便让代码可以直接使用。
例如:转换一个128x160的bmp图片,转换成RGB565的格式,则转换出来的数组大小应为40960,这里转换出来的图片就没有图片的内容说明的了
const unsigned char gImage_sub_board24[40960] = {图片数据};
提示:以下是本篇文章正文内容,下面案例可供参考
一、转换步骤
示例:我们以转换一张128x160的bmp图片为例,该图片和属性如下:
该图片和属性如下:
按下图的提示,转换出图片:
保存界面
转换出的文件128x160_bmp_565.c文件,可改成头文件类型,如128x160_bmp_565.h
里面的内容如下:
const unsigned char gImage_128x160_bmp_565[40960] = { /* 0X00,0X10,0X80,0X00,0XA0,0X00,0X01,0X1B, */
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
。。。省略若干内容。。。。
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
};
二、引用示例
static uint8_t *pframe_sub;
memcpy(pframe_sub,gImage_128x160_bmp_565,sizeof(gImage_128x160_bmp_565));
而pframe_sub是赋值给刷图的发送缓冲区的:
sprd_refresh_xfer.tx_buf = pframe_sub;
这样在刷图时就能直接用到这里面的数据的了
小工具在本文无法上传,我另一篇文章里“图片转代码工具Image2Lcd”可下载这个工具
里包含安装工具和注册工具,安装后注册一下就可以使用了,非常方便。