【问题标题】:Converting a number to a greyscale color in Java在Java中将数字转换为灰度颜色
【发布时间】:2011-02-16 08:33:12
【问题描述】:

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

g.setColor(MyGreyScaleColour);

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

例如

Color intToCol(int colNum)  
{  
code here  
}  

有什么建议吗?

【问题讨论】:

    标签: java colors grayscale


    【解决方案1】:

    类似:

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

    【讨论】:

    • 为什么除以 49f 而不是 50f?
    • “我如何转换 1 到 50 之间的数字”,我假设包含在内,所以:如果 n=50 然后 grey=(50-50)/49f=0.0;如果n=1 那么grey=(50-1)/49f=1.0。你必须除以 49,而不是 50。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-07-21
      • 2021-11-27
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 2013-01-12
      • 2018-02-12
      相关资源
      最近更新 更多