当前位置: 首页 > 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源代码进行讲解…...

DiscuzQ 二开教程(7)——二次开发版本部署文档

DiscuzQ 二开教程&#xff08;7&#xff09;——二次开发版本部署文档 源码&#xff1a;Discuz-Q-V3: 本仓库为Discuz-Q V3.0.211111 版本的二次开发版本&#xff0c;是将DiscuzQ官方仓库进行合并代码&#xff08;All in One&#xff09;整理后的仓库&#xff0c;使用更方便。…...

u盘数据丢失但占内存如何恢复?不要着急,这里有拯救方案

U盘数据丢失但占内存如何恢复&#xff1f;数据丢失是一种让人非常头疼的问题&#xff0c;尤其是当我们的U盘数据丢失了&#xff0c;但内存仍然被占用时&#xff0c;更令人困惑和焦虑。然而&#xff0c;不要慌张&#xff01;在本文中&#xff0c;将为大家介绍一些有效的方法来恢…...

springboot日志文件名称为什么叫logback-spring.xml

如题&#xff0c;为什么springboot日志配置文件叫logback-spring.xml&#xff1f; 在整个项目中搜索 logback-spring.xml 并没有搜索到。 先看一下 org.springframework.boot.context.logging.LoggingApplicationListener#initialize protected void initialize(ConfigurableEn…...

Mysql 开窗函数(窗口函数)

文章目录 全部数据示例1&#xff08;说明&#xff09;开窗函数可以比groupby多查出条件列外的字段&#xff0c;开窗函数主要是为了跟聚合函数一起使用&#xff0c;达到分组统计效果&#xff0c;并且开窗函数的结果集基本都是跟总行数一样示例2示例3示例4错误示例1错误示例2错误…...

计算机视觉之图像特征提取

图像特征提取是计算机视觉中的重要任务&#xff0c;它有助于识别、分类、检测和跟踪对象。以下是一些常用的图像特征提取算法及其简介&#xff1a; 颜色直方图&#xff08;Color Histogram&#xff09;&#xff1a; 简介&#xff1a;颜色直方图表示图像中各种颜色的分布情况。通…...

【面试经典150题】移除元素·JavaScript版

题目来源 大致思路&#xff1a;遍历数组&#xff0c;如果遇到值为val的元素&#xff0c;使用数组最后一个元素替换它。详细过程&#xff1a; /*** param {number[]} nums* param {number} val* return {number}*/ var removeElement function(nums, val) {let i0,nnums.leng…...

Cesium 相机的三种放置方式

文章目录 Cesium 相机的三种放置方式第一种&#xff1a;setView 计算视角1. Cartesian3 方式2. Rectangle 方式 第二种&#xff1a;flyTo第三种&#xff1a;lookAt Cesium 相机的三种放置方式 Cesium 提供了三种方式对相机的位置进行摆放 第一种&#xff1a;setView 计算视角 …...

看了我这篇帖子,你还会觉得制作电子杂志很难吗?

如果你也像我一样笨手笨脚的不会设计排版制作杂志也没关系&#xff0c;用FLBOOK就能在线制作电子杂志&#xff0c;效果极好&#xff01; 工具&#xff1a;FLBOOK 步骤如下&#xff1a; 1.打开FLBOOK在线制作电子杂志平台 2.点击开始创作&#xff0c;有四个创建作品的方式&…...

SRE 与开发的自动化协同 -- 生产环境出现 bug 自动生成异常追踪

简介 生产环境 bug 的定义&#xff1a;RUM 应用和 APM 应用的 error_stack 信息被捕捉后成为 bug。 以 APM 新增错误巡检为例&#xff0c;当出现新错误时&#xff0c;在观测云控制台的「事件」模块下生成新的事件报告&#xff0c;捕捉为 bug。同时利用 Dataflux Func 创建异常…...

【简单认识Docker基本管理】

文章目录 一、Docker概述1、定义2.容器化流行的原因3.Docker和虚拟机的区别4.Docker核心概念 二、安装docker三、镜像管理1.搜索镜像2.下载&#xff08;拉取&#xff09;镜像3.查看已下载镜像4.查看镜像详细信息5.修改镜像标签6.删除镜像7.导出镜像文件和拉取本地镜像文件8.上传…...

学校宣传策划方案/上海百度关键词优化公司

转自&#xff1a;http://www.sohu.com/a/161633191_465975我是 Momenta 的高级研发工程师胡杰&#xff0c;很高兴可以和大家分享我们的 SENet。借助我们提出的 SENet&#xff0c;我们团队&#xff08;WMW&#xff09;以极大的优势获得了最后一届 ImageNet 2017 竞赛 Image Clas…...

做销售用什么网站好/百度关键词搜索技巧

已经在PHP中使用crypt创建了一个哈希密码&#xff0c;并希望在Python中使用crypt模块进行哈希处理。我怎么能做到呢&#xff1f;在这是我的PHP代码&#xff1a;function generateSalt($cost 10) {if (!is_numeric($cost) || $cost < 4 || $cost > 31) {throw new CExcep…...

大良用户网站建设/淘宝推广运营

目录 一&#xff0c;写在前面 二&#xff0c;线性表的定义 三&#xff0c;线性表的抽象数据类型 四&#xff0c;线性表的顺序存储结构 4.1&#xff0c;顺序存储的定义 4.2&#xff0c;顺序存储方式 4.3&#xff0c;数据长度与线性长度的区别 4.4&#xff0c;地址计算方法…...

长春病毒最新消息/seo顾问合同

我希望通过这种有关Leadership Lessons&#xff08;领导者课程&#xff09;的博客计划传递的一个主要价值是&#xff0c;揭示今天各阶层的大多数天才专业人士经常遇到的‘C-Level and Exec Myth’。那些达到管理和首席级别的人们都是具有非凡的激情、精力和激励能力的普通人而已…...

做平台网站怎么做的/建站abc

实现以下的add()的方法 output()时打印前面的参数之和 add(1,2).add(3).add(4).output()function add(...args){return [...args] } Array.prototype.add function(...args){this.push(...args)return this } Array.prototype.output function(){return this.reduce((a,b)&g…...

seo wordpress 插件/海外建站

2019独角兽企业重金招聘Python工程师标准>>> Merge Sort : 归并排序&#xff0c;把一个大问题分解成若干相同的小问题&#xff0c;解决小问题后,合并小问题结果&#xff0c;最终把大问题解决. 例如要排序数组 originArr [2, 5, 3, 8, 9, 6, 3, 4, 2] 先把问题分解为…...