比字节啊 while (true) { int b1 = bimage1.read(); int b2 = bimage2.read(); if (b1 != b2) { result = false; break; } if (b1 == -1) { break; } } if (result == true) { System.out.println("image isn't been modified"); } else { System.out.println("image is been modified"); }
BufferedInputStream bimage1 = new BufferedInputStream(image1); BufferedInputStream bimage2 = new BufferedInputStream(image2); while (true) { int b1 = bimage1.read(); int b2 = bimage2.read(); if (b1 != b2) { result = false; break; } if (b1 == -1) { break; } } if (result == true) { System.out.println("images are same"); } else { System.out.println("images are different "); }
比较专业的方法是将图像中的每个点取出来,进行比较了。 try{ pixels = new int[ iw*ih ]; PixelGrabber pg = new PixelGrabber(yourimage,0,0,iw,ih,pixels,0,iw); pg.grabPixels(); } catch(InterruptedException e){return;}; 用上面这个方法将yourimage的图像的象素存到pixels这个数组中,然后再进行数值比较就行了,又要有一个不同,就是不同的图像了。因为专业,所以耗资源!!!!
如要进行内容比较,要自己实现,你就对其进行字节比较好了
按照java的语法,应该没问题的,你再好好试试,我觉得不应该
clone, <b>equals<\b>, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait ”
这是从java document 中copy下来的BufferedImage的equals()方法是从java.lang.Object直接继承的,没有添加任何的代码
所以直接调用,不会返回我想得到的信息。
我的意思是说,直接用equals()应该就可以的
while (true) {
int b1 = bimage1.read();
int b2 = bimage2.read();
if (b1 != b2) {
result = false;
break;
} if (b1 == -1) {
break;
}
} if (result == true) {
System.out.println("image isn't been modified"); }
else {
System.out.println("image is been modified");
}
BufferedInputStream bimage2 = new BufferedInputStream(image2);
while (true) {
int b1 = bimage1.read();
int b2 = bimage2.read();
if (b1 != b2)
{
result = false;
break;
} if (b1 == -1)
{
break;
}
} if (result == true)
{
System.out.println("images are same"); }
else
{
System.out.println("images are different ");
}
pixels = new int[ iw*ih ];
PixelGrabber pg = new PixelGrabber(yourimage,0,0,iw,ih,pixels,0,iw);
pg.grabPixels();
} catch(InterruptedException e){return;};
用上面这个方法将yourimage的图像的象素存到pixels这个数组中,然后再进行数值比较就行了,又要有一个不同,就是不同的图像了。因为专业,所以耗资源!!!!