11.STM32F429 emWin 颜色系统(包会 记得点赞!)

2023-10-14 19:20

本文主要是介绍11.STM32F429 emWin 颜色系统(包会 记得点赞!),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本节主讲内容大致如下:

  1. 颜色相关基础
  2. 逻辑颜色与物理颜色
  3. 预定义颜色
  4. 调色板
  5. 颜色相关API
  6. 颜色显示实验
    1.颜色相关基础
    色彩空间
    RGB:红色(R)、绿色(G)、蓝色(B)
    CMYK:青色(C)、品红(M)、黄色(Y)、黑色(K)又叫印刷三原色
    HSV:色相(H)、饱和度(S)、明度(V)
    色相:可见光光谱里面所有的颜色 参数范围是(0-360)
    饱和度:颜色鲜艳程度,饱和度越高,颜色越鲜艳
    明度:明亮程度,明度越高,颜色看起来越明亮。
    色彩深度
    也称为位深度(bit depth),表示图像中存储一个像素的色彩信息所占用的位数,单位是位/像素(bits per pixel)或bpp。8位 16位 24位
    像素格式
    它表示为一个像素的颜色信息以什么样的方式和顺序进行存储。
    16位 RGB565
    24位 RGB888
    注意:16位RGB565 和 BGR565 是两种不同的像素格式
    16位 ARGB1555 这是另外一种像素格式
    2.逻辑颜色与物理颜色
    逻辑颜色
    应用程序及emwin内部使用的颜色,包含三个8位的颜色分量和一个8位的alpha通道。
    物理颜色
    显示器实际显示的颜色。在运行时,逻辑颜色映射到物理颜色。
    在这里插入图片描述
    我们用的ARGB
    默认ARGB
    在这里插入图片描述
    左侧 是 ABGR的颜色顺序
    右侧 是 ARGB的颜色顺序(我们使用右侧的顺序)
    在这里插入图片描述
    GUICC_M565 是RGB的顺序
    在这里插入图片描述
    我们最常用的两个
    GUI_SetBkColor()设置当前背景颜色
    GUI_SetColor()设置当前前景色
    5.颜色显示实验
    ①代码分析
    ②实验现象
    在这里插入图片描述
    打开例程。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
	xSize = LCD_GetXSize();ySize = LCD_GetYSize();

首先他获取了x和y的尺寸。

/* 可以显示的色条数 */NumColors = GUI_COUNTOF(_aBarData);for (i = NumBars = 0, NumBars = 0; i < NumColors; i++) {NumBars += _aBarData[i].NumBars;}yStep = (ySize - Y_START) / NumBars;

然后计算一下可以显示多少色条,每一条到底多宽。

	/* 显示文本 */Rect.x0 = 0;Rect.x1 = X_START - 1;Rect.y0 = Y_START;GUI_SetFont(&GUI_Font16B_ASCII);for (i = 0; i < NumColors; i++) {Rect.y1 = Rect.y0 + yStep * _aBarData[i].NumBars - 1;GUI_DispStringInRect(_aBarData[i].s, &Rect, GUI_TA_LEFT | GUI_TA_VCENTER);Rect.y0 = Rect.y1 + 1;}

把每个色条的文本注释显示出来

/* 绘制色条 */Rect.x0 = X_START;Rect.x1 = xSize - 1;Rect.y0 = Y_START;for (i = 0; i < NumColors; i++) {for (j = 0; j < _aBarData[i].NumBars; j++) {Rect.y1 = Rect.y0 + yStep - 1;GUI_DrawGradientH(Rect.x0, Rect.y0, Rect.x1, Rect.y1, _aColorStart[j], _aBarData[i].Color);Rect.y0 = Rect.y1 + 1;}}

绘制色调。
这里面用的GUI_DrawGradientH(Rect.x0, Rect.y0, Rect.x1, Rect.y1, _aColorStart[j], _aBarData[i].Color); 这个函数
在这里插入图片描述
在这里插入图片描述
绘制用水平颜色梯度填充的矩形。
在这里插入图片描述
最终例程烧进去,就是这样的效果图。

这篇关于11.STM32F429 emWin 颜色系统(包会 记得点赞!)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/212611

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题