我正在尝试想出如何将1到50之间的数字转换为灰度颜色,以便在这里使用:
g.setColor(MyGreyScaleColour);
1代表最浅的颜色(白色),50代表最深的颜色(黑色)。
例如:
Color intToCol(int colNum)
{
code here
}
有什么建议吗?
Java 使用的是 RGB 颜色,其中每个组件(红色、绿色、蓝色)的取值范围为 0-255。当所有组成部分具有相同的值时,你得到的是一种白黑灰色。接近 255 的组合更接近白色,接近 0 的组合则全为黑色。下面的函数将返回一种灰色,其白色比例随输入进行调整。
Color intToCol(int colNum)
{
int rgbNum = 255 - (int) ((colNum/50.0)*255.0);
return new Color (rgbNum,rgbNum,rgbNum);
}
类似于:
float grey = (50 - colNum) / 49f;
return new Color(grey, grey, grey);