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

【MiniGUI】文字颜色实现透明度变化

在MiniGUi中,输出文字时有时候希望文字带有透明度信息, 即文字能够透出下面的图像来。
很自然地想到,设置颜色时,将颜色设置为带有透明度的颜色:

	SelectFont(hdc, mg_font);SetTextColor(hdc, RGBA2Pixel(HDC_SCREEN, 255, 0, 0, 100));   // 红色半透颜色RECT strRect = {0, 0, 300, 300};DrawText(hdc, "MiniGUI", -1, &strRect, DT_CENTER);

但是经过实测发现,颜色根本不带有透明度信息,还是纯色,经过各种尝试均无效果。

后经过咨询了解,需要修改核心库代码

// ./src/newgdi/glyph.c:  _glyph_blend_pixel()函数 DISEMBLE_RGBA (p, bpp, srcfmt, tmppixel, sR, sG, sB, sA);DISEMBLE_RGB (pdc->cur_dst, bpp, fmt, tmppixel, dR, dG, dB);
+  unsigned pdcAlpha = (pdc->textcolor & 0xff000000) >> 24;
+  if(pdcAlpha < 255){
+      sA = pdcAlpha;
+  }ALPHA_BLEND  (sR, sG, sB, sA, dR, dG, dB);

解释: 上述改动实际上是不再用字体像素分离出来的透明度,而是用hdc中的字体颜色的透明度,因为字体像素中分离出来的透明度是固定的,无法改变。
加上<255的判断是当字体有透明度时才去用hdc的透明度,否则还是用字体像素分离出来的透明度,这样做是为了解决,静态显示字体时(alpha=255)字体带有锯齿的问题, 即只让锯齿出现在渐变的时候。(这里的锯齿问题暂不好解决,因为发现渐变和锯齿貌似是互斥的

相关文章:

【MiniGUI】文字颜色实现透明度变化

在MiniGUi中&#xff0c;输出文字时有时候希望文字带有透明度信息&#xff0c; 即文字能够透出下面的图像来。 很自然地想到&#xff0c;设置颜色时&#xff0c;将颜色设置为带有透明度的颜色&#xff1a; SelectFont(hdc, mg_font);SetTextColor(hdc, RGBA2Pixel(HDC_SCREEN, …...

css中元素加定位之后到一定距离元素会变小

css中元素加定位之后到一定距离元素会变小 主要原因&#xff1a;元素没有加宽高 .swiperWrapper .active{bottom: 380px;left: 215px;z-index: 10; } .swiperWrapper .next{bottom: 170px;left: 7%;z-index: 20; } .swiperWrapper .prev{bottom: 360px;left: 0%;z-index: 30;…...

Java 语言实现冒泡排序

Java 语言实现冒泡排序 介绍 冒泡排序是一种简单直观的排序算法&#xff0c;它重复地比较相邻的两个元素&#xff0c;如果顺序错误就交换它们&#xff0c;直到没有需要交换的元素为止。冒泡排序的思路是通过每一轮的比较将最大&#xff08;或最小&#xff09;的元素逐渐“冒泡…...

面向对象单选题

下列选项中不属于面向对象的特征的是&#xff08;B&#xff09; A、封装性 B、安全性 C、继承性 D、多态性 在Java中,关于继承&#xff0c;类只支持&#xff08;A&#xff09; A、单继承 B、多继承 C、两个都可以 D、两个都不可以 用于定义成员的访问控制权的一组关键字…...

微服务-Fegin

在之前我们两服务之间调用的时候用的是restTemplate,但是这个方式调用存在很多的问题 String url "http://userservice/user/" order.getUserId(); 代码可读性差&#xff0c;编码体验不统一参数复杂的url难以维护 所以我们大力推出我们今天的主角--Fegin Feign是…...

[oneAPI] 使用字符级 RNN 生成名称

[oneAPI] 使用字符级 RNN 生成名称 oneAPI特殊写法使用字符级 RNN 生成名称Intel Optimization for PyTorch数据下载加载数据并对数据进行处理创建网络训练过程准备训练训练网络 结果 参考资料 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517…...

【ROS】参数服务器--理论模型与参数操作(C++)

一、概念介绍 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器&#xff0c;可以将数据存储在该容器中&#xff0c;被不同的节点调用&#xff0c;当然不同的节点也可以往其中存储数据。 作用&#xff1a;存储一些多节点…...

[oneAPI] 基于BERT预训练模型的英文文本蕴含任务

[oneAPI] 基于BERT预训练模型的英文文本蕴含任务 Intel DevCloud for oneAPI 和 Intel Optimization for PyTorch基于BERT预训练模型的英文文本蕴含任务语料介绍数据集构建 模型训练 结果参考资料 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0…...

【洛谷】P1163 银行贷款

原题链接&#xff1a;https://www.luogu.com.cn/problem/P1163 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 这题需要注意的是利率按月累计这句话&#xff0c;也就是相当于“利滚利”。 我们定义sum变量表示贷款原值&#xff0c;money表示每月支付…...

Java版工程行业管理系统源码-专业的工程管理软件-提供一站式服务 em

​ 鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工…...

kafka--技术文档--基本docker中安装<单机>-linux

安装zookeeper 阿丹小科普&#xff1a; Kafka在0.11.0.0版本之后不再依赖Zookeeper&#xff0c;而是使用基于Raft协议的Kafka自身的仲裁机制来替代Zookeeper。具体来说&#xff0c;Kafka 2.8.0版本是第一个不需要Zookeeper就可以运行Kafka的版本&#xff0c;这被称为Kafka Raf…...

回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览…...

Linux系统安全——NAT(SNAT、DNAT)

目录 NAT SNAT SNAT实际操作 DNAT DNAT实际操作 NAT NAT: network address translation&#xff0c;支持PREROUTING&#xff0c;INPUT&#xff0c;OUTPUT&#xff0c;POSTROUTING四个链 请求报文&#xff1a;修改源/目标IP&#xff0c; 响应报文&#xff1a;修改源/目标…...

uniapp项目添加人脸识别功能,可用作登录,付款,流程审批前的安全校验

本案例使用了hbuilder插件商城中的活体检验插件&#xff0c;可自行前往作者处下载查看&#xff0c; 效果图如下 此插件需要在manifest.json中勾选 实现流程 1&#xff1a;前往hbuilder插件市场下载插件 2&#xff1a;在页面中导入import face from "/uni_modules/mcc-…...

SpringBoot面试题

Spring Boot的启动流程主要分为以下几个步骤&#xff1a; 加载Spring Boot配置文件&#xff0c;初始化Spring Boot环境和核心组件&#xff0c;如ApplicationContext上下文环境、自动装配机制等。 执行SpringApplication.run()方法&#xff0c;执行所有Spring Boot自动配置的Be…...

Git相关命令

SSH密钥文件 Github里面S设置SH公钥有两者选择方式 账号下的每个仓库都设置一个公钥&#xff0c;因为GitHub官方要求每个仓库的公钥都不能相同&#xff0c;所以每个账号都要搞一个密钥&#xff08;很麻烦&#xff09;给账号分配一个公钥&#xff0c;然后这个公钥就可以在这个…...

《HeadFirst设计模式(第二版)》第八章代码——模板方法模式

代码文件目录&#xff1a; CaffeineBeverage package Chapter8_TemplateMethodPattern;/*** Author 竹心* Date 2023/8/17**/public abstract class CaffeineBeverage {final void prepareRecipe(){boilWater();brew();pourInCup();//这里使用钩子customerWantsCondiments()来…...

RESTful API,以及如何使用它构建 web 应用程序

RESTful API是一种基于HTTP协议的API设计风格&#xff0c;它的核心思想是将资源作为 API 的核心&#xff0c;使用 HTTP 的 GET、POST、PUT、DELETE 等方法对这些资源进行操作&#xff0c;并通过 URL 来定位资源。 RESTful API的特点包括&#xff1a; 资源是 API 的核心使用 H…...

Git+Gitee使用分享

GitGitee快速入门 创建仓库 ​ ​ ​ 初始化本地仓库 验证本地git是否安装好 打开cmd窗口&#xff0c;输入git ​ 这样就OK。 Git 全局设置:(只需要设置一次) 这台电脑如果是第一次使用git&#xff0c;就需要这样初始化一下&#xff0c;这样才知道是谁提交到仓库了。 git confi…...

【3D激光SLAM】LOAM源代码解析--transformMaintenance.cpp

系列文章目录 【3D激光SLAM】LOAM源代码解析–scanRegistration.cpp 【3D激光SLAM】LOAM源代码解析–laserOdometry.cpp 【3D激光SLAM】LOAM源代码解析–laserMapping.cpp 【3D激光SLAM】LOAM源代码解析–transformMaintenance.cpp 写在前面 本系列文章将对LOAM源代码进行讲解…...

从B站视频到跑通代码:手把手复现大疆C板控制M2006电机的完整流程(STM32CubeMX + C610电调)

大疆C板驱动M2006电机全流程解析&#xff1a;从CubeMX配置到CAN通信实战 第一次拿到大疆RoboMaster C板时&#xff0c;看着官方文档和一堆外设确实有点无从下手。特别是当需要控制M2006这种高性能电机时&#xff0c;文档中的信息分散在不同章节&#xff0c;而社区里的完整教程又…...

STM32实战:手把手教你用Cubemx配置交流充电桩的CP信号检测(附代码)

STM32实战&#xff1a;从零构建充电桩CP信号检测系统 充电桩作为新能源汽车基础设施的核心组件&#xff0c;其通信协议的可靠性直接关系到充电安全。在实际工程中&#xff0c;CP&#xff08;Control Pilot&#xff09;信号的检测往往是开发者的第一个技术拦路虎。我曾在一个海外…...

MathType 快捷键实战指南——数学建模效率飙升的秘诀(从入门到精通)

1. 为什么你需要掌握MathType快捷键&#xff1f; 如果你经常需要处理数学公式&#xff0c;肯定遇到过这样的场景&#xff1a;为了输入一个简单的积分符号&#xff0c;不得不从工具栏里翻找半天&#xff1b;调整公式对齐时反复用鼠标拖动&#xff1b;修改矩阵维度时逐个单元格调…...

保姆级教程:在Windows 10/11上从源码编译Groops(含Qt环境变量避坑指南)

从零构建Groops编译环境&#xff1a;Windows系统下的完整避坑指南 当你在GNSS数据处理领域深耕时&#xff0c;一款强大的开源工具能让你事半功倍。Groops作为重力场恢复和精密定轨的瑞士军刀&#xff0c;其功能强大但编译过程却可能让新手望而却步。本文将带你一步步穿越编译迷…...

别再照搬Zynq教程了!手把手教你为Arty A7-35T配置MicroBlaze的SPI Flash启动(附时钟连接避坑指南)

别再照搬Zynq教程了&#xff01;手把手教你为Arty A7-35T配置MicroBlaze的SPI Flash启动&#xff08;附时钟连接避坑指南&#xff09; 在FPGA开发领域&#xff0c;Zynq系列因其ARMFPGA的异构架构而广受欢迎&#xff0c;网上教程资源也最为丰富。但这也导致了一个常见陷阱——许…...

NVIDIA Profile Inspector完整指南:解锁显卡隐藏性能的终极方案

NVIDIA Profile Inspector完整指南&#xff1a;解锁显卡隐藏性能的终极方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾经感觉自己的NVIDIA显卡性能没有完全发挥&#xff1f;明明配置不差&…...

别再死磕梯形图了!IEC61131-3的ST语言实战:用5分钟搞定一个PID功能块

别再死磕梯形图了&#xff01;IEC61131-3的ST语言实战&#xff1a;用5分钟搞定一个PID功能块 当PLC工程师第一次接触结构化文本&#xff08;ST&#xff09;时&#xff0c;往往会被它类似高级编程语言的语法吓退。但事实上&#xff0c;ST在处理复杂算法时的简洁性和高效性&#…...

【2026实测】直击算法底层逻辑:论文AI率太高?5款工具与3大手改技巧盘点

最近不少学弟学妹在后台跟我倒苦水&#xff0c;说查重率好不容易低了&#xff0c;结果AI率越改越高。眼看临近DDL&#xff0c;生怕又因为这个耽误答辩。 作为已经摸爬滚打出来的老学长&#xff0c;今天我就根据我总结出来的经验&#xff0c;从检测系统的底层逻辑开始讲起&…...

地表温度反演进阶:对比单窗算法与大气校正法,用ENVI/ERDAS分析Landsat 7 ETM+数据哪个更准?

地表温度反演技术深度对比&#xff1a;单窗算法与大气校正法的实战解析 遥感技术在地表温度反演领域的应用已经发展出多种成熟算法&#xff0c;其中单窗算法和大气校正法&#xff08;RTE&#xff09;是最为常用的两种方法。对于中高级遥感用户而言&#xff0c;理解这两种算法的…...

Armv8/v9架构中的A64系统指令与预测限制机制详解

1. A64系统指令概述在Armv8/v9架构中&#xff0c;A64系统指令(System Instructions)是处理器特权级别操作的核心机制。这些指令运行在EL1及以上异常级别&#xff0c;用于控制系统寄存器、内存管理单元、虚拟化扩展和安全状态等关键功能。与常规数据处理指令不同&#xff0c;系统…...