自己设计一种运行在单片机的嵌入式gui图形库—图片转换工具

使用Qt编写一个字体转换工具
1、界面布局
在这里插入图片描述
2、编写图片转换的代码

void file_info_data_rgb565(char * name, uint32_t * image_data, uint32_t w, uint32_t h)
{
    uint32_t x, y;
    uint32_t offset = 0;
    uint32_t color;
    uint32_t rgb565;
    uint32_t data_h, data_l;

    file_info_printf(fp_file_info, "#include \"fv_types_def.h\" \n"
                                   "    \n"
                                   "const uint8_t %s_map[] = \n",
                                   name);
    file_info_printf(fp_file_info, "{\n");

    for(y = 0; y < h; y++)
    {
        for(x = 0; x < w; x++)
        {
            color = image_data[offset++];
            rgb565 = ((color & 0x00f80000) >> 8) | ((color & 0x0000fc00) >> 5) | ((color & 0x000000f8) >> 3);
            data_h = (rgb565 >> 8) & 0xff;
            data_l = rgb565 & 0xff;
            file_info_printf(fp_file_info, "0x%02x, 0x%02x, ", data_l, data_h);
        }
        file_info_printf(fp_file_info, "\n");  //换行
    }
    file_info_printf(fp_file_info, "}; \n");
    file_info_printf(fp_file_info, "    \n"); //空行

    file_info_printf(fp_file_info, "const fv_pixelmap_t pixelmap_%s = {  \n", name);
    file_info_printf(fp_file_info, "    .pixelmap_name = \"pixelmap_%s\",  \n", name);
    file_info_printf(fp_file_info, "    .pixelmap_format = FV_PIXELMAP_FORMAT_RGB565,  \n");
    file_info_printf(fp_file_info, "    .pixelmap_width = %d,  \n", w);
    file_info_printf(fp_file_info, "    .pixelmap_height = %d,  \n", h);
    file_info_printf(fp_file_info, "    .pixelmap_data = %s_map,  \n", name);
    file_info_printf(fp_file_info, "    .pixelmap_data_size = %d * %d * 2,  \n", w, h);
    file_info_printf(fp_file_info, "}; \n");
    file_info_printf(fp_file_info, "    \n"); //空行
    file_info_printf(fp_file_info, "FV_ADD_IMAGE(pixelmap_%s);  \n", name);
}

3、图片转换工具生成的文件如下:

#include "fv_types_def.h"

const uint8_t watch_background_01_map[] =
{
......
};

const fv_pixelmap_t pixelmap_watch_background_01 = {
    .pixelmap_name = "pixelmap_watch_background_01",
    .pixelmap_format = FV_PIXELMAP_FORMAT_RGB565,
    .pixelmap_width = 240,
    .pixelmap_height = 240,
    .pixelmap_data = watch_background_01_map,
    .pixelmap_data_size = 240 * 240 * 2,
};

FV_ADD_IMAGE(pixelmap_watch_background_01); 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值