颜色的RGB-计算HSV公式色度/饱和度/亮度 简化代码

计算颜色的HSV值


本文提供全流程,中文翻译。

Chinar 坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)


Chinar —— 心分享、心创新!

助力快速完成 Color HSV

为新手节省宝贵的时间,避免采坑!



全文高清图片,点击即可放大观看 (很多人竟然不知道)


1

HSV —— 色彩模型


通过颜色的 RGB 值计算出对应的 HSV

H Hue 色度

S Saturation饱和度

V Value 纯度
举个栗子黑白88

using UnityEngine;
using UnityEngine.UI;


/// <summary>
/// 通过RGB —— HSV
/// </summary>
public class ChinaCalculateColorHsv : MonoBehaviour
{
    private Image TestImage;   //测试图片,用来颜色取值
    private Image TargetImage; //目标图片,用来将HSV转RGB,赋值
    private float R;
    private float G;
    private float B;
    private float H;
    private float V;
    private float S;
    private float max;
    private float min;


    void Start()
    {
        TestImage   = GameObject.Find("TestImageColor").GetComponent<Image>();
        TargetImage = GameObject.Find("TargetImage").GetComponent<Image>();
    }


    public void CalculateColorHsv()
    {
        R   = TestImage.color.r;
        G   = TestImage.color.g;
        B   = TestImage.color.b;
        max = Mathf.Max(R, G, B);
        min = Mathf.Min(R, G, B);
        if (R == max)
        {
            H = (G - B) / (max - min);
        }
        if (G == max)
        {
            H = 2 + (B - R) / (max - min);
        }
        if (B == max)
        {
            H = 4 + (R - G) / (max - min);
        }
        H = (H / 6);
        if (H < 0)
        {
            H = (H / 360 + 1);
        }

        S = (max - min) / max;
        V = (Mathf.Max(R, G, B));
        print((H));
        print((S));
        print((V));


        TargetImage.color = Color.HSVToRGB(H, S, V);
    }
}

2

Example —— 实例


这里以 Unity 来举个例子

取一个图片的颜色 RGB ,得到 HSV

然后通过内置函数 Color.HSVToRGB(H, S, V) HSV 转为 Color 赋值给新图片
举个栗子黑白88
这里写图片描述


支持

May Be —— 搞开发,总有一天要做的事!


拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!


先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


1 —— 云服务器超全购买流程 (新手必备!)

2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

3—— Windows 服务器配置、运行、建站一条龙 !

4 —— Linux 服务器配置、运行、建站一条龙 !





技术交流群:806091680 ! Chinar 欢迎你的加入


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

posted on 2018-08-03 23:56  Chinar  阅读(2313)  评论(0编辑  收藏  举报

导航