Java中的RGB到CMYK转换器,无需导入

时间:2016-11-01 15:57:04

标签: java converter rgb cmyk

我的任务是在java中编写一个非常简单的rgb到cmyk转换器,我的尝试不起作用。寻找解决方案没有帮助,因为每个人都使用图书馆和导入我不能在这里使用。我希望有人看到我的错误。

int w;
    int c;
    int m;
    int y;
    int k;

    if (r+b+g==0) {
        System.out.println("Ist alles 0");
    } else {
        int max =  Math.max(Math.max(r,b),g);
        w = (max / 255);

        r = r/255;
        g = g/255;
        b = b/255;

        c = ((w-r)/w);
        m = ((w-g)/w);
        y = ((w-b)/w);
        k = 1-w;
        System.out.println(c+" "+m+" "+y+" "+k);
    }

这是我试图通过用户输入转换为cmyk的r,g和b值(int)的部分。

编辑:我知道有这样的帖子,但解决方案总是包含我不允许使用的库和导入。

1 个答案:

答案 0 :(得分:1)

以下代码将在r中存储零,因为r的初始值小于255且r为int。因此,按整数除法r/255将为零。

r = r/255;

相反,你可以将除法的结果存储在一个双变量中,尝试下面的(确保除法中至少有一个操作数是双精度,否则你可以将它转换为双精度)

double rC = r/255.0;
c = ((w-rC)/w);