"c++ hsl to rgb integer" Code Answer's

You're definitely familiar with the best coding language C++ that developers use to develop their projects and they get all their queries like "c++ hsl to rgb integer" answered properly. Developers are finding an appropriate answer about c++ hsl to rgb integer related to the C++ coding language. By visiting this online portal developers get answers concerning C++ codes question like c++ hsl to rgb integer. Enter your desired code related query in the search bar and get every piece of information about C++ code related question on c++ hsl to rgb integer. 

c++ hsl to rgb integer

By Bewildered BoarBewildered Boar on Jan 26, 2021
typedef struct RgbColor
{
    unsigned char r;
    unsigned char g;
    unsigned char b;
} RgbColor;

typedef struct HsvColor
{
    unsigned char h;
    unsigned char s;
    unsigned char v;
} HsvColor;

RgbColor HsvToRgb(HsvColor hsv)
{
    RgbColor rgb;
    unsigned char region, remainder, p, q, t;

    if (hsv.s == 0)
    {
        rgb.r = hsv.v;
        rgb.g = hsv.v;
        rgb.b = hsv.v;
        return rgb;
    }

    region = hsv.h / 43;
    remainder = (hsv.h - (region * 43)) * 6; 

    p = (hsv.v * (255 - hsv.s)) >> 8;
    q = (hsv.v * (255 - ((hsv.s * remainder) >> 8))) >> 8;
    t = (hsv.v * (255 - ((hsv.s * (255 - remainder)) >> 8))) >> 8;

    switch (region)
    {
        case 0:
            rgb.r = hsv.v; rgb.g = t; rgb.b = p;
            break;
        case 1:
            rgb.r = q; rgb.g = hsv.v; rgb.b = p;
            break;
        case 2:
            rgb.r = p; rgb.g = hsv.v; rgb.b = t;
            break;
        case 3:
            rgb.r = p; rgb.g = q; rgb.b = hsv.v;
            break;
        case 4:
            rgb.r = t; rgb.g = p; rgb.b = hsv.v;
            break;
        default:
            rgb.r = hsv.v; rgb.g = p; rgb.b = q;
            break;
    }

    return rgb;
}

HsvColor RgbToHsv(RgbColor rgb)
{
    HsvColor hsv;
    unsigned char rgbMin, rgbMax;

    rgbMin = rgb.r < rgb.g ? (rgb.r < rgb.b ? rgb.r : rgb.b) : (rgb.g < rgb.b ? rgb.g : rgb.b);
    rgbMax = rgb.r > rgb.g ? (rgb.r > rgb.b ? rgb.r : rgb.b) : (rgb.g > rgb.b ? rgb.g : rgb.b);

    hsv.v = rgbMax;
    if (hsv.v == 0)
    {
        hsv.h = 0;
        hsv.s = 0;
        return hsv;
    }

    hsv.s = 255 * long(rgbMax - rgbMin) / hsv.v;
    if (hsv.s == 0)
    {
        hsv.h = 0;
        return hsv;
    }

    if (rgbMax == rgb.r)
        hsv.h = 0 + 43 * (rgb.g - rgb.b) / (rgbMax - rgbMin);
    else if (rgbMax == rgb.g)
        hsv.h = 85 + 43 * (rgb.b - rgb.r) / (rgbMax - rgbMin);
    else
        hsv.h = 171 + 43 * (rgb.r - rgb.g) / (rgbMax - rgbMin);

    return hsv;
}

Source: stackoverflow.com

Add Comment

0

All those coders who are working on the C++ based application and are stuck on c++ hsl to rgb integer can get a collection of related answers to their query. Programmers need to enter their query on c++ hsl to rgb integer related to C++ code and they'll get their ambiguities clear immediately. On our webpage, there are tutorials about c++ hsl to rgb integer for the programmers working on C++ code while coding their module. Coders are also allowed to rectify already present answers of c++ hsl to rgb integer while working on the C++ language code. Developers can add up suggestions if they deem fit any other answer relating to "c++ hsl to rgb integer". Visit this developer's friendly online web community, CodeProZone, and get your queries like c++ hsl to rgb integer resolved professionally and stay updated to the latest C++ updates. 

C++ answers related to "c++ hsl to rgb integer"

View All C++ queries

C++ queries related to "c++ hsl to rgb integer"

c++ hsl to rgb integer how to set an integer equal to the largest integer possible in c++ rgb(100,100,100,0.5) validation c++ rgb type def c++ rgb code how to create an integer in c++ change integer to string c++ take integer input in c++ Count set bits in an integer c++ cpp get float from integer division convert integer to string c++ integer type validation c++ integer to string c++ how to print integer in c++ how to string to integer in c++ 64 bit unsigned integer c++ integer min value c++ Write a program to find the sum of all sub-arrays of a given integer array. what is meaning of 64 bit integer in c++ nearest integer rounding in c++ integer to char c++ c++ forbids comparison between pointer and integer converting char to integer c++ how to convert integer to string in cpp c++ string to integer without stoi how to check sqrt of number is integer c++ c++98 check if character is integer rounding off to nearest integer in c++ taking integer input from file in c++ C++ convert integer to digits, as vector C++ convert vector of digits into integer how to search integer in c++ how to find a integer is how many times repeated in C++ without for loop c++ integer division 2 Byte Integer R/W to Arduino’s EEPROM Read in three numbers, and calculate the sum. Output the sum as an integer. in c visual studio c++ print the amount of odd integer between n and m error: ISO C++ forbids comparison between pointer and integer [-fpermissive] if(s[i] != "b"){ how to print all numbers in an integer in c++

Browse Other Code Languages

CodeProZone