您好我正在尝试用Java编写自己的HSL Colorspace
但我遇到了CIEXYZ
转换的问题...
我已经编写了from/toRGB
方法,但java也需要编写from/toCIEXYZ
方法。我以为我可以使用预先实现的CIEXYZ Colorspace
...
@Override
public float[] fromCIEXYZ(float[] colorvalue) {
return fromRGB(CIEXYZ.toRGB(colorvalue));
}
但这不起作用,经过一段时间后我发现CIEXYZ
颜色空间java提供的功能并不像我预期的那样......
ColorSpace cieXYZ = ColorSpace.getInstance(ColorSpace.CS_CIEXYZ);
System.out.println(Arrays.toString(cieXYZ.toRGB(cieXYZ.fromRGB(new float[]{1,0.5f,0}))));
这个小代码的结果是[0.9820706,0.49709317,0.122087434]而不是[1,0.5,0] ......
任何人都可以解释我为什么? 我该如何解决这个问题?