• Atitit  从 RGB 到 HSL 或 HSV 的转换


    Atitit   RGB HSL HSV 的转换

    1.1. RGB HSL HSV 的转换公式与原理1

    1.2. public static HSV RGB2HSV(Color clr) {2

    1.3. 参考资料2

     

    1.1.  RGB HSL HSV 的转换公式与原理

    (rgb) 分别是一个颜色的红、绿和蓝坐标,它们的值是在 0 1 之间的实数。设 max 等价于 rg  b 中的最大者。设 min 等于这些值中的最小者。要找到在 HSL 空间中的 (hsl) 值,这里的 h ∈ [0, 360)是角度的色相角,而 sl ∈ [0,1] 是饱和度和亮度,计算为:

     


    h 的值通常规范化到位于 0 360°之间。而 h = 0 用于 max = min 的(就是灰色)时候而不是留下 h 未定义。

    HSL HSV 有同样的色相定义,但是其他分量不同。HSV 颜色的 s  v 的值定义如下:

     

    1.2. public static HSV RGB2HSV(Color clr) {

    float r = (float) clr.getRed();

    float g = (float) clr.getGreen();

    float b = (float) clr.getBlue();

    float max = max(r, g, b);

    float min = min(r, g, b);

    float h = 0;

    if (max == min)

    h = 0;

    else if (r == max && g >= b)

    h = (g - b) / (max - min) * 60;

    else if (r == max && g < b)

    h = (g - b) / (max - min) + 360;

    else if (g == max)

    h = (b - r) / (max - min) * 60 + 120;

    else if (b == max)

    h = (r - g) / (max - min) * 60 + 240;

     

    float s = (max - min) / max;

    if (max == 0)

    s = 0;

    HSV hsv = new HSV(h, s, max);

    return hsv;

    }

     

    1.3. 参考资料

    颜色空间RGBHSV(HSL)的转换 - jiangxinyu的专栏 - 博客频道 - CSDN.NET.html

     

    作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

    汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    Atiend

     

  • 相关阅读:
    Cookie的作用范围、设置、创建、获取的方法
    2020寒假总结14
    MyBatis中foreach传入参数为数组
    Springmvc接收数组参数
    寒假每日总结十
    2020寒假每日总结
    2020寒假总结八
    2020寒假每日总结七
    2020寒假每日总结四
    2020寒假总结三
  • 原文地址:https://www.cnblogs.com/attilax/p/15198336.html
Copyright © 2020-2023  润新知