UCGUI学习之路(4)显示位图

显示位图的步骤跟显示外部字体的方法步骤差不多。

能用于UCGUI的位图通常定义为“C”的GUI_BITMAP结构体变量。在使用此位图的头文件中声明,就可以使用位图打印函数显示了。
这里就要用到位图转换器,把位图转换成“C”格式文件。至于其它格式图片可以通过软件把图片格式转换成位图,再导入位图转换器转换成“C”文件。这里要注意,位图转换器不能从一幅RGB模式的位图转换成“C”文件,必须先把其转换成调色板格式的位图,然后再进行转换成“C”文件。
位图转换器可以导入如下类型的.bmp文件:

  • 带调色板的每像素(bpp)1,4或8位格式。
  • 无调色板的24bpp(RGB/全彩色模式)。
  • RLE4和RLE8格式。

具体步骤如下:

一、使用位图转换工具把位图转换成“C”语言格式。

运行uC-GUI-BitmapConvert.exe,打开图片file->open.
这里写图片描述
选择调色板,这里使用自动调色板

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UCGUI是一个嵌入式图形界面库,用于开发嵌入式设备的图形界面。要实现按键按下和释放时的图片显示变化,可以按照以下步骤进行设置: 1. 创建按钮控件:使用`BUTTON_Create()`函数创建一个按钮控件,并设置按钮的位置、尺寸和父窗口。 2. 设置按钮的外观:使用`BUTTON_SetBmpFileName()`函数设置按钮的背景图片文件名。可以提供按键未按下和按键按下时的两张图片。 3. 设置按钮的状态:使用`BUTTON_SetState()`函数设置按钮的初始状态。可以设置为按下或未按下状态。 4. 注册按钮回调函数:使用`BUTTON_Callback()`函数注册按钮的回调函数。在回调函数中可以处理按钮按下和释放的事件。 5. 在回调函数中处理按键事件:在按钮的回调函数中,根据按钮的按下和释放状态,使用`BUTTON_SetBmpFileName()`函数更新按钮的背景图片文件名,实现按键前后图片显示变化。 以下是一个简单的示例代码: ```c // 创建按钮控件 BUTTON_Handle hButton; hButton = BUTTON_Create(10, 10, 100, 50, hParent); // 设置按钮的外观 BUTTON_SetBmpFileName(hButton, 0, "button_up.bmp"); // 按钮未按下时的图片 BUTTON_SetBmpFileName(hButton, 1, "button_down.bmp"); // 按钮按下时的图片 // 设置按钮的初始状态 BUTTON_SetState(hButton, BUTTON_STATE_RELEASE); // 注册按钮回调函数 BUTTON_Callback(hButton, ButtonCallback); // 按钮回调函数 void ButtonCallback(WM_MESSAGE * pMsg) { switch (pMsg->MsgId) { case WM_NOTIFY_PARENT: if (pMsg->Data.v == WM_NOTIFICATION_CLICKED) { // 按钮被按下 BUTTON_SetState(hButton, BUTTON_STATE_PRESSED); BUTTON_SetBmpFileName(hButton, 0, "button_down.bmp"); } else if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) { // 按钮被释放 BUTTON_SetState(hButton, BUTTON_STATE_RELEASED); BUTTON_SetBmpFileName(hButton, 0, "button_up.bmp"); } break; default: // 默认处理 BUTTON_Callback(pMsg); break; } } ``` 以上代码中,通过设置按钮的背景图片文件名和更新按钮的状态,实现了按键前后图片显示变化的效果。你可以根据自己的需求调整代码和图片文件名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值