Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Core » [Proposal] RGB <-> CMYK conversion functions.
[Proposal] RGB <-> CMYK conversion functions. [message #53569] Mon, 13 April 2020 13:10 Go to previous message
Oblivion is currently offline  Oblivion
Messages: 1092
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


 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Patch for Algo.h
Next Topic: c++ 17 support
Goto Forum:
  


Current Time: Fri Apr 19 05:31:16 CEST 2024

Total time taken to generate the page: 0.01925 seconds