这让我发疯了。这是我的设置:
background(0);
stroke(255,255,255,255);
当我输出一个像素,然后查询相同的像素时,颜色不匹配:
point(2,2);
int x = get(2,2);
print(red(x));
print(green(x));
print(blue(x));
我得到的是:223 223 223 为什么我得到223而不是255?
答案 0 :(得分:2)
这种情况正在发生,因为默认情况下,Processing会启用消除锯齿功能。这为形状(包括点)增加了模糊性和透明度。通常这是一件好事,因为它使您的图纸看起来更好。
但是如果您想要禁用抗锯齿,因为您需要准确的颜色,那么在绘制之前只需调用noSmooth()
函数:
noSmooth();
background(0);
stroke(255,255,255,255);
point(2,2);
int x = get(2,2);
print(red(x));
print(green(x));
print(blue(x));
这打印出255
,就像你期望的那样。更多信息可以在the reference找到。