这段代码有什么作用?

时间:2011-05-08 09:11:06

标签: java rgb

public class AlterImage {

  static int getBrightness(int rgb) {
    int r,g,b;
    Color pixColour = new Color(rgb);
    r=pixColour.getRed();
    g=pixColour.getGreen();
    b=pixColour.getBlue();
    rgb = (int)((r+g+b)/3);
    return rgb;
  }

4 个答案:

答案 0 :(得分:4)

根据方法名称,它返回rgb颜色的亮度; - )

但是,它似乎不是一个好的实现 - 请参阅Formula to determine brightness of RGB color

答案 1 :(得分:1)

该函数需要一种颜色(在单个整数变量中通常使用reg,green和blue编码)并返回颜色的灰度值。

将三个颜色分量的总和除以3是一种非常简单,可能太简单的计算灰度值的方法。

答案 2 :(得分:0)

此函数将RGB值作为整数,从rgb值构造Color结构,分别获取Red,Green和Blue组件值,添加这些值并将结果除以3。但是我不认为这是获得亮度值的好方法,请看this

答案 3 :(得分:0)

为了你的兴趣;该方法与以下代码相同。它通过取红色,绿色和蓝色强度的平均值(向下舍入)来获得亮度

static int getBrightness(int rgb) {
    int b = rgb & 0xFF;
    int g = (rgb >> 8) & 0xFF;
    int r = (rgb >> 16) & 0xFF;
    return (r + g + b) / 3;
}