镜像算法无法正常工作

时间:2017-04-13 01:52:46

标签: java image colors swap

我正在尝试编写一个镜像图像的程序。我已经尝试了一切,但无法使我的代码正常工作。它应该做的是从一行中的左边的像素和同一行中的右边的像素中取出它们的颜色。下面我已经包含了我的代码和我使用的Pixel类的方法的代码。有人可以帮忙吗?

注意:Pixel类中的所有方法都按照给我的方式工作

注意:在我的代码中,this指的是图片

我的代码:

    public void mirror() {
      Pixel leftPixel;
      Pixel rightPixel;
      Color temp = new Color(255, 255, 255);

      for(int y = 0; y < this.getHeight(); y += 1) { //this.getHeight() is the height of the image in pixels
          for(int x = 0; x < this.getWidth(); x += 1) { //this.getWidth() is the width of the image in pixels
              leftPixel = new Pixel(this, x, y);
              rightPixel = new Pixel(this, (this.getWidth() - 1) - x, y);

              temp = leftPixel.getColor();
              leftPixel.setColor(rightPixel.getColor());
              rightPixel.setColor(temp);
          }
       }
    }

像素对象描述 像素在图片中具有列(x)和行(y)位置。像素知道如何获取和设置图片中的红色,绿色,蓝色和alpha值。像素还知道如何使用Color对象获取和设置颜色。

使用的像素类方法:

获取颜色:

public Color getColor()

获取表示此像素颜色的颜色对象的方法。

返回:    表示像素颜色的颜色对象

设置颜色

public void setColor(Color newColor)

将像素颜色设置为传入的颜色对象的方法。

参数: newColor - 要使用的新颜色

https://stackoverflow.com/a/18530995/171456

Original Picture/My Current Output

0 个答案:

没有答案