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

发布于 2024-08-31 11:52:48 字数 237 浏览 6 评论 0原文

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

g.setColor(MyGreyScaleColour);

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

例如

Color intToCol(int colNum)  
{  
code here  
}  

有什么建议吗?

I'm trying to figure out how I can convert a number between 1 and 50 to a greyscale color that could be used here:

g.setColor(MyGreyScaleColour);

1 would be lightest (white) and 50 would be darkest (black).

e.g.

Color intToCol(int colNum)  
{  
code here  
}  

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

美羊羊 2024-09-07 11:52:48

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);
}

Java uses RGB colors where each component (Red, Green, Blue) ranges from 0-255. When all components have the same value, you end up with a white-black-gray color. Combinations closer to 255 would be more white and closer to 0 would be all black. The function below would return a grayish color, with the amount of white scaled accordingly with the input.

Color intToCol(int colNum)
{
  int rgbNum = 255 - (int) ((colNum/50.0)*255.0);
  return new Color (rgbNum,rgbNum,rgbNum);
}
断爱 2024-09-07 11:52:48

像这样的东西:

float grey = (50 - colNum) / 49f;
return new Color(grey, grey, grey);

Something like:

float grey = (50 - colNum) / 49f;
return new Color(grey, grey, grey);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文