Home » U++ Library support » U++ Core » [Proposal] RGB <-> CMYK conversion functions.
[Proposal] RGB <-> CMYK conversion functions. [message #53569] |
Mon, 13 April 2020 13:10  |
Oblivion
Messages: 1202 Registered: August 2007
|
Senior Contributor |
|
|
Hello,
U++ already has RGB <-> HSV conversion functions.
Below functions might be a handy addition to them, for people using color conversion a lot.
void CMYKtoRGB(double c, double m, double y, double k, double& r, double& g, double& b)
{
k = clamp(k, 0.0, 1.0);
r = (1 - c) * (1 - k);
g = (1 - m) * (1 - k);
b = (1 - y) * (1 - k);
}
void RGBtoCMYK(double r, double g, double b, double& c, double& m, double& y, double& k)
{
k = 1 - max(max(r, g), b);
c = (1 - r - k) / (1 - k);
m = (1 - g - k) / (1 - k);
y = (1 - b - k) / (1 - k);
}
Color CmykColorf(double c, double m, double y, double k)
{
double r, g, b;
CMYKtoRGB(c, m, y, k, r, g, b);
return Color(min(int(r * 255), 255), min(int(g * 255), 255), min(int(b * 255), 255));
}
Color CmyColorf(double c, double m, double y)
{
double r, g, b;
CMYKtoRGB(c, m, y, 0.0, r, g, b);
return Color(min(int(r * 255), 255), min(int(g * 255), 255), min(int(b * 255), 255));
}
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
|
|
|
|
|
|
|
|
|
|
|
|
Goto Forum:
Current Time: Fri Apr 25 12:39:57 CEST 2025
Total time taken to generate the page: 0.01094 seconds
|