图片取模¶
图片取模实际上是将图片数据转换为pixmap数据,但是针对不同的控件,其支持的pixmapdata格式不同,因此需要将图片数据转换为对应的pixmapdata数据。
普通控件的pixmap支持¶
普通控件(按钮,矩形,圆,进度条等)的pixmap仅支持相应颜色为的格式,不支持压缩,也不支持外部Flash,例如,屏幕的颜色是RGB565的,那么取模时选择的颜色格式必须为RGB565,否则会出错,如果屏幕是RGB888的,那么取模时选择的颜色格式必须为RGB888,否则会出错。
ext_img控件的pixmap支持¶
ext_img控件即扩展图片控件的pixmap支持RGB332, RGB565,RGB888,并且支持RLE压缩格式,同时支持外部Flash。
取模步骤¶
点击左侧的导航栏中的【图片取模工具】
点击【📁 点击或拖拽图片到此处 支持格式:JPG、JPEG、PNG、BMP 已添加 0/1024 张图片】,选择需要转换的图片,可以多个图片一起转换
选择【颜色格式】,选择你需要的颜色格式
选择【输出格式】,如果是使用外部Flash,请选择bin格式,否则请选择c格式
选择【压缩算法】,如果是ext_img,可以支持压缩,如果是普通控件,请选择无压缩
填写输出的【文件名】,默认是images文件
点击【开始转换】按钮,即可生成对应的pixmap数据
在SGL中使用生成的pixmap数据¶
最终生成的数据是一个.c文件,将这个文件复制到你的工程文件中,并且添加到编译中,生成的格式如下:
/* 这里省略大量数组数据 */
...
const sgl_pixmap_t pic1_pixmap = {
.width = 131,
.height = 128,
.bitmap.array = pic1_data,
.format = SGL_PIXMAP_FMT_RGB565,
};
在你的代码中使用如下代码:
extern const sgl_pixmap_t pic1_pixmap;
sgl_xxx_set_pixmap(xxx_obj, &pic1_pixmap);