// CMYK = Cyan, Magenta, Yellow, Key(black)
// RGB = Red, Green, Blue
#include <iostream>
#include <cmath>
struct CMYK {
float C;
float M;
float Y;
float K;
};
struct CMYK RGBtoCMYK(float R, float G, float B) {
struct CMYK cmyk;
if (R == 0 && G == 0 && B == 0) {
cmyk.C = 0;
cmyk.M = 0;
cmyk.Y = 0;
cmyk.K = 1;
return cmyk;
}
R = R / 255;
G = G / 255;
B = B / 255;
float max = R;
if (max < G)
max = G;
if (max < B)
max = B;
float white = max;
cmyk.C = ((white - R) / white) * 100;
cmyk.M = ((white - G) / white) * 100;
cmyk.Y = ((white - B) / white) * 100;
cmyk.K = (1.0f - white) * 100;
return cmyk;
}
int main() {
struct CMYK cmyk = RGBtoCMYK(245.0f, 213.0f, 0.0f);
std::cout << "Cyan: " << round(cmyk.C) << "\n";
std::cout << "Magenta: " << round(cmyk.M) << "\n";
std::cout << "Yellow: " << round(cmyk.Y) << "\n";
std::cout << "Black: " << round(cmyk.K) << "\n";
}
/*
run:
Cyan: 0
Magenta: 13
Yellow: 100
Black: 4
*/