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

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);

相关文章:

emWin5的图片半透明之旅

文章目录 目标过程直接使用png (失败了)通过 BmpCvt.exe 转换一下(成功了)通过bmp转 (半成功吧) 补充工程结构整理 目标 显示半透明效果,类似png那种,能透过去,看到背景。 过程 直接使用png …...

【RabbitMQ 项目】项目概述

项目概述 一.角色划分二.服务器模块概述1.本地模块2.网络模块3.服务器模块 三.模块详细划分1.服务端2.客户端 一.角色划分 该项目的模型是一个跨主机的生产消费模型,有三种角色:生产者,消费者,中间人。对应就要实现三个大模块&…...

【VSCode】VSCode Background 背景插件辅助窗口程序

前排贴上Github项目链接 GitHub窗口项目链接 这是一个基于VSCode上由shalldie上传的background扩展制作的windows窗口程序。 该程序旨在通过窗口程序尽可能的完善该扩展原有的功能。 background - shalldie 的最大优势是我目前仅在其扩展上发现了UseFront的选项,这…...

gdb 前端:kdbg 安装使用

文章目录 1. 前言2. kdbg 安装使用2.1 安装 kdbg2.2 使用 kdbg 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. kdbg 安装使用 2.1 安装 kdbg kdbg 是 gdb 的图形化界面的前端,在 …...

UDP_SOCKET编程实现

文章目录 socket编程接口认识struct sockaddr类 编写一个server服务Client代码查看启动结果代码修正1.获取内核分配给客户端的信息2.修正不匹配ip不能访问的问题 不同机器之间的通信利用xftp将udp_client传给wsl的ubuntu机器进行演示现在模拟在windows下的udp_client代码: 对方…...

【网络】高级IO——阻塞IO和非阻塞IO的实现

目录 一.文件描述符的默认行为——阻塞IO 二.非阻塞IO 2.1.在打开文件或创建套接字时设置非阻塞模式: 2.2.在使用网络I/O接口时请求非阻塞行为: 2.3.fcntl函数 一.文件描述符的默认行为——阻塞IO 在Linux系统中,无论是通过open系统调用…...

ASPICE培训:打造卓越的汽车软件开发能力

随着汽车行业的快速发展和智能化技术的不断演进,汽车软件开发已成为汽车制造过程中不可或缺的一部分。为了确保汽车软件的质量、可靠性和安全性,ASPICE(Automotive SPICE)作为一种国际公认的汽车软件开发过程评估标准,…...

基于Python的人工智能应用案例系列(2):分类

在本篇文章中,我们将探讨分类问题,具体的应用场景是贷款审批预测。通过该案例,我们将学习如何使用Python处理分类问题,训练模型并预测贷款是否会被批准。 案例背景 该数据集包含贷款申请的相关信息,目标是预测贷款是否…...

演示:基于WPF自绘的中国省份、城市、区县矢量地图

一、目的:演示一个基于WPF自绘的中国省份、城市、区县矢量地图 二、效果 国 省 市 三、功能 支持实际经纬度显示 支持平移,缩放等功能 显示中国地图 显示各个省份地图 显示各个省份地图(包含在表格中,包含缩率图) 显…...

同时拥有独显和核显,怎么让应用程序选择使用哪个GPU?

看你现在使用的是核显还是独显 勾选上GPU引擎选项,后面便会标识你所使用的是哪种显卡,如果是独立显卡,就可以免去后续的操作;如果不是,那么请继续接下来的操作。 将你需要使用独显的程序换成gpu1(独显&am…...

C++八股文之面向对象篇

🤖个人主页:晚风相伴-CSDN博客 思维导图链接:面向对象的性质 持续更新中…… 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 …...

点云深度学习系列:Sam2Point——基于提示的点云分割

文章:SAM2POINT:Segment Any 3D as Videos in Zero-shot and Promptable Manners 代码:https://github.com/ZiyuGuo99/SAM2Point Demo:https://huggingface.co/spaces/ZiyuG/SAM2Point 1)摘要 文章介绍了SAM2POINT,这是…...

mysql学习教程,从入门到精通,TOP 和MySQL LIMIT 子句(15)

1、TOP 和MySQL LIMIT 子句内容 在SQL中,不同的数据库系统对于限制查询结果的数量有不同的实现方式。TOP 关键字主要用于 SQL Server 和 Access 数据库中,而 LIMIT 子句则主要用于 MySQL、PostgreSQL(通过 LIMIT/OFFSET 语法)、S…...

备战软考Day02-数据结构与算法

1.基本概念与三要素 1.什么是数据 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 2.数据元素、数据项 数据元素是数据的基本单位,通常作为一个整体进行…...

COMP 6714-Info Retrieval and Web Search笔记week1

哭了哭了,这周唯一能听懂的就这门 目录 IR(Information Retrieval)是什么?IR的基本假设Unstructured (text) vs. structuredDocuments vs. Database Records比较文本(Comparing Text)IR的范围(Dimensions of IR)IR的任…...

C++在Linux实现多线程和多进程的TCP服务器和客户端通信

多进程版本 服务器 #include <arpa/inet.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <sys/wait.h> #include <signal.h> #include <string&…...

音视频开发常见的开源项目汇总

FFmpeg 地址&#xff1a;https://ffmpeg.org/介绍&#xff1a;FFmpeg 是一个非常强大的开源多媒体框架&#xff0c;它可以用来处理视频和音频文件。它支持多种格式的转换、编码、解码、转码、流处理等。FFmpeg 包括了 libavformat、libavcodec、libavutil、libswscale、libpos…...

Java操控Redis (面经之 使用Redis)

操控Redis的工具 ReactiveRedisTemplate 和 RedisTemplate : RedisTemplate&#xff1a; 它是一个通用的模板类&#xff0c;可以使用任何序列化策略来序列化和反序列化键和值。默认情况下&#xff0c;它使用 JdkSerializationRedisSerializer 序列化值&#xff0c;并使用 Strin…...

【计网】从零开始使用UDP进行socket编程 --- 服务端业务实现

在我们每个人都曾经历过“沮丧”时刻里&#xff0c; 如果我们不能对别人说有益的好话&#xff0c; 那我们最好还是什么也别说。 --- 卡耐基 《人性的弱点》--- 从零开始使用UDP进行socket编程 1 前情提要2 单词翻译2.1 业务需求2.2 设计字典类2.3 服务端与客户端逻辑2.4 运…...

正式发售!《黑神话:悟空》背后的技术力量——UE5与实时云渲染

千呼万唤始出来&#xff0c;《黑神话&#xff1a;悟空》终于在今年8月发售了&#xff0c;相信大家都已经玩起来了&#xff01; 作为国产游戏的画质巅峰之作&#xff0c;《黑神话&#xff1a;悟空》凭借其令人叹为观止的画面质量和游戏体验&#xff0c;赢得了广泛的好评。这一切…...

AI伦理测试:当算法可能产生偏见时

随着人工智能技术从实验室走向规模化应用&#xff0c;算法决策已深度渗透至招聘、信贷、医疗、司法、内容推荐等关乎社会公平与个人福祉的关键领域。对软件测试从业者而言&#xff0c;一个全新的、紧迫的挑战正摆在面前&#xff1a;传统的功能、性能、安全测试已不足以确保AI产…...

Kazumi:3步打造你的专属动漫播放器,告别追番烦恼

Kazumi&#xff1a;3步打造你的专属动漫播放器&#xff0c;告别追番烦恼 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP&#xff0c;支持流媒体在线观看&#xff0c;支持弹幕&#xff0c;支持实时超分辨率。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi …...

VibeVoice保姆级教程:从部署到实战,打造你的专属语音助手

VibeVoice保姆级教程&#xff1a;从部署到实战&#xff0c;打造你的专属语音助手 1. 引言&#xff1a;为什么选择VibeVoice&#xff1f; 想象一下&#xff0c;你正在开发一个需要语音交互的应用&#xff0c;或者想为视频内容添加专业配音&#xff0c;又或者需要为视障用户提供…...

超越Smooth L1!揭秘Wing Loss在人脸对齐中的梯度优化艺术(附PyTorch代码剖析)

1. 为什么我们需要超越Smooth L1&#xff1f; 在计算机视觉领域&#xff0c;人脸关键点检测一直是个既基础又具有挑战性的任务。记得我第一次尝试用深度学习解决这个问题时&#xff0c;就像大多数初学者一样&#xff0c;毫不犹豫地选择了L2损失函数。结果发现模型在测试集上的表…...

数据结构八股(一)

参考这个&#xff1a;https://blog.csdn.net/weixin_52341045/article/details/134395797?fromshareblogdetail&sharetypeblogdetail&sharerId134395797&sharereferPC&sharesource2401_82607598&sharefromfrom_link 链表&#xff0c;队列和栈的区别 链表…...

OneAPI开源大模型网关部署:支持国产数据库(达梦/人大金仓)存储用户与渠道数据

OneAPI开源大模型网关部署&#xff1a;支持国产数据库&#xff08;达梦/人大金仓&#xff09;存储用户与渠道数据 1. 引言&#xff1a;为什么你需要一个统一的大模型网关&#xff1f; 如果你正在使用或者计划使用大模型&#xff0c;大概率会遇到这样的烦恼&#xff1a;每个厂…...

从原理图到比特流:手把手解读Vivado里那个神秘的SPI x4配置电路图(附Mode引脚设置对照表)

深入解析Vivado SPI x4配置电路&#xff1a;从原理图到硬件实现的完整指南 在FPGA开发中&#xff0c;SPI Flash配置电路的正确设计直接关系到系统能否正常启动和工作。许多工程师在第一次接触Xilinx Vivado提供的官方SPI x4配置电路图时&#xff0c;往往会对其中各种网络标签和…...

跨平台协作:Windows主机OpenClaw调用mac部署的Qwen3.5-9B

跨平台协作&#xff1a;Windows主机OpenClaw调用mac部署的Qwen3.5-9B 1. 为什么需要跨设备调用大模型&#xff1f; 去年我遇到一个典型困境&#xff1a;主力开发机是Windows台式机&#xff0c;但需要频繁调用大模型处理代码生成和文档分析。直接在Windows本地部署Qwen3.5-9B这…...

什么叫低代码?低代码平台能做什么?国内十大低代码平台盘点

在数字化转型浪潮席卷全球的今天&#xff0c;软件开发效率成为企业竞争的关键因素。低代码&#xff08;Low-Code&#xff09;作为一种革命性的开发模式&#xff0c;正以惊人速度改变着传统软件开发的格局&#xff0c;让"人人都是开发者"的愿景逐渐成为现实。本文将深…...

OpenClaw浏览器自动化:Phi-3-mini-128k-instruct操控Chrome完成数据采集

OpenClaw浏览器自动化&#xff1a;Phi-3-mini-128k-instruct操控Chrome完成数据采集 1. 为什么选择OpenClaw做浏览器自动化&#xff1f; 去年我在做一个市场调研项目时&#xff0c;需要从几十个网页中提取产品参数和价格信息。传统爬虫遇到动态加载的页面就束手无策&#xff…...