等图像方法Java

时间:2015-11-25 10:43:57

标签: java image for-loop

我试图编写一种方法来测试两个像素是否相等,而且我所看到的很多方式都非常复杂且超出我的知识。这就是我尝试这样做的方式,但我遇到了错误:

public boolean equals(Object other)
{
    if(!(other instanceof MyArt))
    {
        return false;
    }
    MyArt otherArtObject = (MyArt)other;
    for(int x = 0; x < image.getWidth(); x++)
    {
        for(int y = 0; y < image.getHeight(); y++)
        {
            Pixel pixelObj = this.image.getPixel(x,y);
            Pixel otherPixelObj = otherArtObject.image.getPixel(x,y);
            if((pixelObj == otherPixelObj)&&(pixelObj.getRed()==otherPixelObj.getRed())&&(pixelObj.getBlue()==otherPixelObj.getBlue())&&(pixelObj.getGreen()==otherPixelObj.getGreen()))
            {
                return true;
            }
        }
    }
    return false;
}

我的艺术课只是创造了另一个形象。所以它创建了另一个对象,然后如果两个对象相等,并且红色,绿色和蓝色值相等,则返回true。如果不是,则返回false。感谢您的任何意见!

1 个答案:

答案 0 :(得分:0)

如果第一个像素(0,0)是相同的引用(参见pixelObj == otherPixelObj)并且不打扰检查其余部分,那么该代码将返回true。那是你要的吗?

我建议您将像素等于像素,因为它会使代码更具可读性。我甚至可能将循环推进到image类。

你对这门课有什么考试?你有没有使用不同大小的图像?