在Java中将数字转换为灰度颜色

Mei*_*eir 4 java colors grayscale

我试图找出如何将1到50之间的数字转换为可在此处使用的灰度颜色:

g.setColor(MyGreyScaleColour);
Run Code Online (Sandbox Code Playgroud)

1将是最亮的(白色),50将是最暗的(黑色).

例如

Color intToCol(int colNum)  
{  
code here  
}  
Run Code Online (Sandbox Code Playgroud)

有什么建议?

tsc*_*ble 11

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);
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 8

就像是:

float grey = (50 - colNum) / 49f;
return new Color(grey, grey, grey);
Run Code Online (Sandbox Code Playgroud)

  • 为什么除以49f而不是50f? (2认同)