IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++游戏梦 | EasyX详解 | ③:EasyX函数-颜色模型 -> 正文阅读

[C++知识库]C++游戏梦 | EasyX详解 | ③:EasyX函数-颜色模型


<<<上一篇—②:EasyX函数-设备相关

系列文章

①:安装及基本概念
②:EasyX函数-设备相关
③:EasyX函数-颜色模型



前言

作者也是个小白,本【教程】充其量算个学习笔记,若有写的不正确的地方还请指教。

四、EasyX函数 之 颜色模型

  • 交换颜色 - BGR()

    作用:交换颜色中的红色和蓝色。
    :EasyX中内存中颜色表示为b-g-r,显示缓冲区中是r-g-b,可以输入BGR(0xaabbcc),将红蓝(即变成0xccbbaa)换位。
    函数原型:

    COLORREF BGR(COLORREF color);
    

    参数:

    • c o l o r color color:需要交换的颜色

    返回值:交换后的颜色。

  • 合成颜色 - RGB()

    作用:将红、绿、蓝颜色分量合成颜色。
    函数原型:

    COLORREF RGB(
    	BYTE byRed,		// 颜色的红色部分
    	BYTE byGreen,	// 颜色的绿色部分
    	BYTE byBlue		// 颜色的蓝色部分
    );
    

    参数:

    • b y R e d byRed byRed:颜色的红色部分, ∈ [ 0 , 255 ] \in[0,255] [0,255]
    • b r G r e e n brGreen brGreen:颜色的绿色部分, ∈ [ 0 , 255 ] \in[0,255] [0,255]
    • b y B l u e byBlue byBlue:颜色的蓝色部分, ∈ [ 0 , 255 ] \in[0,255] [0,255]

    返回值:合成的颜色。
    :可以通过 GetRValue、GetGValue、GetBValue分离出颜色分量。(见下Get*Value()

  • 分离颜色 - Get*Value()

    作用:获取指定颜色中某个颜色值。
    函数原型:

    BYTE GetBValue(COLORREF rgb);//Blue
    BYTE GetGValue(COLORREF rgb);//Green
    BYTE GetRValue(COLORREF rgb);//Red
    

    参数:

    • r g b rgb rgb:指定的颜色。

    返回值:颜色中的r/g/b值, r , g , b ∈ [ 0 , 255 ] r,g,b\in[0,255] r,g,b[0,255]

  • HSL转换 - HSLtoRGB() & RGBtoHSL()

    作用:转换 HSL 颜色1和 RGB 颜色。
    函数原型:

    COLORREF HSLtoRGB(
    	float H,
    	float S,
    	float L
    );
    void RGBtoHSL(
    	COLORREF rgb,
    	float *H,
    	float *S,
    	float *L
    );
    

    参数:
    HSLtoRGB():

    • H H H:原 HSL 颜色模型的 Hue(色相) 分量, H ∈ [ 0 , 360 ] H\in[0,360] H[0,360]
    • S S S:原 HSL 颜色模型的 Saturation(饱和度) 分量, S ∈ [ 0 , 1 ] S\in[0,1] S[0,1]
    • L L L:原 HSL 颜色模型的 Lightness(亮度) 分量, L ∈ [ 0 , 1 ] L\in[0,1] L[0,1]

    RGBtoHSL():

    • r g b rgb rgb:原 RGB 颜色。
    • H H H:返回 HSL 颜色模型的 Hue(色相) 分量的地址, H ∈ [ 0 , 360 ] H\in[0,360] H[0,360]
    • S S S:返回 HSL 颜色模型的 Saturation(饱和度) 分量的地址, S ∈ [ 0 , 1 ] S\in[0,1] S[0,1]
    • L L L:用于返回 HSL 颜色模型的 Lightness(亮度) 分量的地址, L ∈ [ 0 , 1 ] L\in[0,1] L[0,1]

    实例:见-二-颜色-4.

  • HSV转换 - HSVtoRGB() & RGBtoHSV()

    类似HSL:
    HSV2.

    COLORREF HSVtoRGB(
    	float H,//原 HSV 颜色模型的 Hue(色相) 分量,0 <= H < 360。
    	float S,//原 HSV 颜色模型的 Saturation(饱和度) 分量,0 <= S <= 1。
    	float V //原 HSV 颜色模型的 Value(明度) 分量,0 <= V <= 1。
    );
    
    void RGBtoHSV(
    	COLORREF rgb,//原 RGB 颜色。
    	float *H,//用于返回 HSV 颜色模型的 Hue(色相) 分量,0 <= H < 360。
    	float *S,//用于返回 HSV 颜色模型的 Saturation(饱和度) 分量,0 <= S <= 1。
    	float *V//用于返回 HSV 颜色模型的 Value(明度) 分量,0 <= V <= 1。
    );
    

  • 获取灰度 - RGBtoGRAY()

    作用:获取与指定颜色对应的灰度值颜色。
    函数原型:

    COLORREF RGBtoGRAY(
    	COLORREF rgb
    );
    

    参数:

    • r g b rgb rgb:原 RGB 颜色。

    返回值:对应的灰度颜色。


结语

精力、时间有限,先写到这,下期见!





@HaohaoCppDebuger|寻兰?
2021/10/24?

-----THE END-----
THANK YOU !













  1. HSL 又称 HLS。
    HSL 的颜色模型如图所示:在这里插入图片描述H 是英文 Hue 的首字母,表示色相,即组成可见光谱的单色。红色在 0 度,绿色在 120 度,蓝色在 240 度,以此方向过渡。
    S 是英文 Saturation 的首字母,表示饱和度,等于 0 时为灰色。在最大饱和度 1 时,具有最纯的色光。
    L 是英文 Lightness 的首字母,表示亮度,等于 0 时为黑色,等于 0.5 时是色彩最鲜明的状态,等于 1 时为白色。 ??

  2. HSV 又称 HSB。
    HSV 的颜色模型如图所示:在这里插入图片描述
    H 是英文 Hue 的首字母,表示色相,即组成可见光谱的单色。红色在 0 度,绿色在 120 度,蓝色在 240 度,以此方向过渡。
    S 是英文 Saturation 的首字母,表示饱和度,等于 0 时为灰色。在最大饱和度 1 时,每一色相具有最纯的色光。
    V 是英文 Value 的首字母,表示明度,等于 0 时为黑色,在最大明度 1 时,是色彩最鲜明的状态。 ??

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:21:44  更:2021-10-25 12:23:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:18:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码