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;
}
答案 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;
}