需要HSL到RGB转换

问题描述 投票:-1回答:1

这可能是一个非常愚蠢的问题,但只是想澄清我的问题。看过RGB和HSL之间转换的几种不同算法,我见过var_1和var_2。我只是想知道这些变量究竟是什么?我知道他们会出现错误只是想完全理解为什么以及我需要对转换进行更改的地方。

void HSLToRGB( int H, int S, int L, int& R, int& G, int& B )
{
H = 240;
S = 47;
L = 58; 


if (S == 0)
{

    R = L * 255
        G = L * 255
        B = L * 255
}
else
{
    if (L < 0.5) { var_2 = L * (1 + S); }
    else
    {
        var_2 = (L + S) - (S * L);
        var_1 = 2 * L - var_2;
    }
    var_1 = 2 * L- var_2;
    R = 255 * Hue_2_RGB(var_1, var_2, H + (1 / 3));
    G = 255 * Hue_2_RGB(var_1, var_2, H);
    B = 255 * Hue_2_RGB(var_1, var_2, H - (1 / 3));
}
static float Hue_2_RGB(float v1, float v2, float vH)
{
if (vH < 0) { vH += 1; }
if (vH > 1) { vH -= 1; }
if ((6 * vH) < 1) { return (v1 + (v2 - v1) * 6 * vH); }
if ((2 * vH) < 1) {return (v2); }
if ((3 * vH) < 2)
{
    return (v1 + (v2 - v1) * ((2 / 3) - vH) * 6);
    return (v1);
}
}

对不起,如果这是一个愚蠢的问题,只想在外行术语中100%理解。

谢谢。我还没有包含RGB到HSL转换的代码。

algorithm rgb var hsl
1个回答
0
投票

没有办法知道,因为它们没有在您显示的代码中定义。我们可以根据定义的其他值来猜测,但这也不能保证。我认为这是C,这意味着他们可能是int

如果你只是想尝试它,看看它是否编译,我会让他们int。如果它编译,那么你可以深入研究算法,看看它有效和多远。

© www.soinside.com 2019 - 2024. All rights reserved.