bufferedImage1.toString()
bufferedImage2.toString()
然后再比较,试一试

解决方案 »

  1.   

    bufferedImage1的equals应该是对引用进行的比较
    如要进行内容比较,要自己实现,你就对其进行字节比较好了
      

  2.   

    这是2个toString()的结果,仅仅是开头不同BufferedImage@ecd7e: type = 1 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=0 IntegerInterleavedRaster: width = 1 height = 1 #Bands = 3 xOff = 0 yOff = 0 dataOffset[0] 0BufferedImage@1d520c4: type = 1 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=0 IntegerInterleavedRaster: width = 1 height = 1 #Bands = 3 xOff = 0 yOff = 0 dataOffset[0] 0是不是BufferedImage的对象中仅仅只有一部分保存的是图像的“位图信息”?
      

  3.   

    不过,想不通,为什么用equals()会不对呢?
    按照java的语法,应该没问题的,你再好好试试,我觉得不应该
      

  4.   

    “Methods inherited from class java.lang.Object 
    clone, <b>equals<\b>, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait ”
    这是从java document 中copy下来的BufferedImage的equals()方法是从java.lang.Object直接继承的,没有添加任何的代码
    所以直接调用,不会返回我想得到的信息。
      

  5.   

    是呀,你说的我知道
    我的意思是说,直接用equals()应该就可以的
      

  6.   

    不能依赖java中的equals方法,因为equals方法依赖于对这个方法的实现方式,如果实际的实现方式不满足你的要求,就不能使用。除非你编写一个类继承该类,并以你需要的方式覆盖equals方法。
      

  7.   

    比字节啊
    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");
          }
      

  8.   

    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 ");
          }
      

  9.   

    比较专业的方法是将图像中的每个点取出来,进行比较了。    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这个数组中,然后再进行数值比较就行了,又要有一个不同,就是不同的图像了。因为专业,所以耗资源!!!!