我从pixel
获得get.RGB
的红色和蓝色值并使用bitwise
运算符:
red = (rgb[i][j] >> 8) & 0xFF;
blue = rgb[i][j] & 0xFF;
但是如何使用"红色和蓝色值的平均值来重新着色有问题的像素"?
这意味着我必须排除绿色。
唯一需要的导入是BufferedImage。
答案 0 :(得分:0)
你的问题真的不清楚。问你的老师你想要达到的目标,然后我们可以帮助你这样做。以下是一些可以帮助您的元素。
你的第一部分几乎是正确的。请记住getRGB()
返回的颜色各为8位,因此以下是获取它们的方法:
int red = (rgb[i][j] >> 16) & 0xFF;
int green = (rgb[i][j] >> 8) & 0xFF;
int blue = rgb[i][j] & 0xFF;
如果您的问题是如何将rgb颜色重新组合成一个数字,请按以下步骤操作:
pixelColor = (red << 16) + (green << 8) + blue
红色和蓝色的平均值非常明显,这是你指出的公式:
int average = (red + blue) / 2;
如果你想要的是使用红色和绿色平均值的紫色像素,那么你只需要将红色和蓝色设置为平均值,将绿色设置为0:
int pixelColor = (average << 16) + average // using average for red and blue, and 0 for green
编辑:看起来你根本不想拿绿色。
int pixelColor = (average << 16) + (green << 8) + average // using average for red and blue, and keep the green unchanged
编辑:或许你想让绿色取红色和蓝色的平均值?
int pixelColor = (red << 16) + (average << 8) + blue; // keep red and bllue, and put their average as the green color