【发布时间】:2015-12-13 15:32:17
【问题描述】:
我正在尝试在 java 中翻转图像,但遇到了一个我无法弄清楚的问题。
使用双循环,我正在遍历组织图像中的所有像素值,并将它们复制到像素中的新图像(width-x-1,y)。
下图描述了当我运行该方法时会发生什么。
由于某种原因,新图像似乎只穿过了图像高度的 1/10。为什么会这样,我该如何解决?
private Image img;
private Pixel pixel;
private Image newimg;
private Pixel newpixel;
public advancedFilters(Image img)
{
this.img = img;
}
public Image Mirror(){
newimg = new Image(img.getWidth(), img.getHeight(), "newimage");
int curtone;
for (int j=0; j<img.getHeight(); j++) {
for (int i=0; i<img.getWidth(); i++) {
pixel = img.getPixel(i,j);
curtone = pixel.getValue();
newpixel = newimg.getPixel(newimg.getWidth()-i-1, j);
newpixel.setValue(curtone);
}
}
return newimg;
}
【问题讨论】:
-
您确定
img.getHeight()返回的高度正确吗? -
什么是图像?它不能是 java.awt.Image,因为它正在使用该构造函数。
-
它的 .jpg,是的 - img.getHeight() 返回应有的高度
标签: java image for-loop pixel mirror