当前位置: 首页 > article >正文

emWin5的图片半透明之旅

文章目录

  • 目标
  • 过程
    • 直接使用png (失败了)
    • 通过 BmpCvt.exe 转换一下(成功了)
    • 通过bmp转 (半成功吧)
  • 补充
    • 工程结构整理

目标

显示半透明效果,类似png那种,能透过去,看到背景。

过程

直接使用png (失败了)

失败了。
png图片转成.c文件后。调用

IMAGE_SetPNG     (IMAGE_Handle hObj, const void * pData, U32 FileSize);

这特么是个坑。仿真器不支持,需要链接libpng;emwin不支持,需要专门版本适配 emwin_png.zip。

我都试了,研究了一天,仿真器和真实环境我都没走通。
不管是vc6.0还是 errno错误还是arm和thumb模式切换,都试了。放弃了。

通过 BmpCvt.exe 转换一下(成功了)

成功了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将png文件转成.c文件,然后加载使用

      // 创建 IMAGE 控件
      hImage = IMAGE_CreateEx(50, 50, 200, 200, hItem, WM_CF_SHOW, 0, ID_IMAGE_1);
      IMAGE_SetBitmap(hImage, &bmzhizhen1);

在这里插入图片描述

通过bmp转 (半成功吧)

png 通过 BmpCvt.exe 转成 bmp,然后bmp转成 .c文件。

然后如前一节一样加载。

注意的是,如果png是通过windows画图转的bmp,抱歉,不行,因为“windows画图”自动加了一个白色背景。
懒得再研究对比原因了。
就这样吧。

补充

工程结构整理

目的:为了不将图片的数组跟代码混到一起。
因为太大了。
1,新建一个目录专门放图片,将图片转成.c文件。添加到工程中
2,使用图片的地方使用外部引用的方式。

extern unsigned char _aczt1[77188UL + 1];// 声明外部图片数据,背景
extern GUI_CONST_STORAGE GUI_BITMAP bmzhizhen1; //指针1
extern GUI_CONST_STORAGE GUI_BITMAP bmzhizhen2;//指针2
  case WM_INIT_DIALOG:
      hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
      IMAGE_SetJPEG(hItem, _aczt1, sizeof(_aczt1));
      
      IMAGE_Handle hImage;
      // 创建 IMAGE 控件
      hImage = IMAGE_CreateEx(350, 350, 200, 200, hItem, WM_CF_SHOW, 0, ID_IMAGE_1);
      IMAGE_SetBitmap(hImage, &bmzhizhen1);

http://www.kler.cn/news/306188.html

相关文章:

  • 高级java每日一道面试题-2024年9月12日-架构篇[DDD领域驱动篇]-如何使用领域驱动设计(DDD)中的事务脚本模式?
  • Spring4-IoC2-基于注解管理bean
  • comfyui中,sam detector与yoloworld图像分割算法测试以及影响
  • [极客大挑战 2019]PHP
  • 1、常用的数据库、表操作
  • 蒸!--数据在内存中的存储
  • node express 开启多进程
  • python多线程程序设计 之二
  • C#获取计算机信息
  • C++入门基础知识68(高级)——【关于C++ 异常处理】
  • 【系统架构设计师-2010年真题】案例分析-答案及详解
  • Superset二次开发之源码asyncEvent.ts 分析
  • 嵌入式C语言自我修养:C语言的面向对象编程思想
  • 问题 H: 三角数
  • 【在Linux世界中追寻伟大的One Piece】五种IO模型和阻塞IO
  • 13. 神经网络基本骨架--nn.Module
  • 长业务事务的离线并发问题
  • 9. 什么是 Beam Search?深入理解模型生成策略
  • leetcode 难度【简单模式】标签【数据库】题型整理大全
  • 【网络安全的神秘世界】渗透测试基础
  • 【C#】添加临时环境变量
  • linux第二课(docker的安装使用)
  • 微软九月补丁星期二发现了 79 个漏洞
  • 《ImageNet Classification with Deep Convolutional Neural Networks》论文导读
  • 漫画元素检测系统源码分享
  • AutoSar AP通信的事件订阅
  • Playwright与Selenium的对比:谁是更适合你的自动化测试工具?
  • 通俗理解低秩分解
  • 【webpack4系列】设计可维护的webpack4.x+vue构建配置(终极篇)
  • (182)时序收敛--->(32)时序收敛三二