我正在编写一种方法,用于获取5x5平方像素的RGB值,然后计算所有像素的平均颜色。 我们获得了一个使用的包,这就是.getPixel方法等来自的地方。
我遇到的困难是将每个像素放在5x5区域。 我试过的是运行循环,最后有x ++,所以x增加1。但我意识到这只会得到顶行的像素。
我想我必须有另一个循环或somekind的嵌套循环来获得5x5的方格,但我还是无法弄清楚如何使其工作,同时仍然将值添加到红色,绿色和蓝色的变量。 / p>
任何提示?感谢
private Color tileColor ( Picture pic, int x, int y ) {
Pixel p;
Color color;
int r,g,b;
int red = 0;
int green = 0;
int blue = 0;
for (int i = 0; i <= 5; i++){
p= pic.getPixel(x,y);
color = p.getColor();
r = color.getRed();
g = color.getGreen();
b = color.getBlue();
red = red + r;
green = green + g;
blue = blue + b;
x++
}
}
答案 0 :(得分:2)
for (int x = 0; x < 5; x++) {
for (int y = 0; y < 5; y++) {
p = pic.getPixel(x, y);
// do something ....
}
}
确保它是5像素,然后0,1,2,3,4已经是5像素。
另一种常见用法是:
for (int dx = 0; dx < 5; dx++) {
for (int dy = 0; dy < 5; dy++) {
p = pic.getPixel(100 + dx, 200 + dy);
// do something ....
}
}
用于获取相对于像素(100, 200)
的像素。 dx
和dy
可以读取为delta x和delta y(小增量)。