有没有办法在android studio中将RGB值(0-255)转换为CMYK值(0-99)?

时间:2017-07-27 19:59:13

标签: android colors rgb cmyk

我正在制作一个应用来控制5050 LED灯条的LED颜色。颜色选择器为我提供RGB代码,但5050 LED灯条遵循CMYK颜色格式。有没有办法在android studio中将RGB值(0-255)转换为CMYK值(0-99)?

1 个答案:

答案 0 :(得分:0)

这是一个简单的类,它将RGB转换为CMYK,正常cmyk从0.0到1.0,只需使用一个缩放器从0到99.没有我发现原生转换为cmyk的android颜色转换器。

public class CMYK
    {
        float cyan = 0.0f;
        float magenta = 0.0f;
        float yellow = 0.0f;
        float black = 0.0f;


        public void convertRGBtoCMYK(int r, int g, int b)
        {

            float _r = (float) (r / 255);
            float _g = (float) (g / 255);
            float _b = (float) (b / 255);

            black = 1.0f - max(_r, _g, _b);

            cyan = (1.0f - _r - black) / (1.0f - black);
            magenta = (1.0f - _g - black) / (1.0f - black);
            yellow = (1.0f - _b - black) / (1.0f - black);
        }

        private float max(float a, float b, float c)
        {
            if (a > b && a > c)
                return a;
            if (b > a && b > c)
                return b;
            if (c > a && c > b)
                return c;

            // all equal just return a
            return a;
        }
    }