我试图编写一种方法来测试两个像素是否相等,而且我所看到的很多方式都非常复杂且超出我的知识。这就是我尝试这样做的方式,但我遇到了错误:
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。感谢您的任何意见!
答案 0 :(得分:0)
如果第一个像素(0,0)是相同的引用(参见pixelObj == otherPixelObj
)并且不打扰检查其余部分,那么该代码将返回true。那是你要的吗?
我建议您将像素等于像素,因为它会使代码更具可读性。我甚至可能将循环推进到image
类。
你对这门课有什么考试?你有没有使用不同大小的图像?