How to convert RGB to CMYK in Java

1 Answer

0 votes
// CMYK = Cyan, Magenta, Yellow, Key(black)
// RGB = Red, Green, Blue
 
import java.util.Arrays;
 
public class MyClass {
    private static double[] RGBtoCMYK(double R, double G, double B) {
        if (R == 0 && G == 0 && B == 0) {
            return new double[]{ 0, 0, 0, 1 };
        }
 
        R = R / 255.0 * 100;
        G = G / 255.0 * 100;
        B = B / 255.0 * 100;
 
        double K = 100 - Math.max(Math.max((int)R, (int)G), (int)B);
 
        if (K == 100) {
            return new double[]{ 0, 0, 0, 100 };
        }
 
        double C = Math.round((100 - R - K) / (100 - K) * 100);
        double M = Math.round((100 - G - K) / (100 - K) * 100);
        double Y = Math.round((100 - B - K) / (100 - K) * 100);
 
        return new double[]{ C, M, Y, K };
    }
    public static void main(String args[]) {
        double[] CMYK  = RGBtoCMYK(245.0f, 213.0f, 0.0f);
 
        System.out.println(Arrays.toString(CMYK));
    }
}
 
 
 
 
/*
run:
 
[0.0, 13.0, 100.0, 4.0]
 
*/

 



answered Jan 31, 2023 by avibootz
edited Feb 1, 2023 by avibootz

Related questions

1 answer 98 views
98 views asked Jan 30, 2023 by avibootz
1 answer 129 views
129 views asked Feb 2, 2023 by avibootz
1 answer 136 views
136 views asked Feb 1, 2023 by avibootz
1 answer 130 views
130 views asked Feb 1, 2023 by avibootz
1 answer 149 views
149 views asked Jan 31, 2023 by avibootz
1 answer 102 views
102 views asked Jan 31, 2023 by avibootz
1 answer 122 views
122 views asked Jan 31, 2023 by avibootz
...