2个包含类似图象的BufferedImage对象,现在想比较出这2个对象中不相同的点,应该怎么办?
如何输出包括这些点的位置,还有,如果想把这些点填充到第三个BufferedImage中去,让第三个BufferedImage和前2个BufferedImage中的一个保持内容相同,应该怎么办?

解决方案 »

  1.   

    说一下我的思路,供楼主参考:
    定义两个线程,分别从两个线程中以读文件的形式读出一个个的二进制字节来比较,byte不同的就是不同的点了,可是定位问题偶想不明白应该怎么做,但是这样也可以将前2个填写 到第三个里面去了哈
      

  2.   

    不想通过文件来,直接从屏幕上抓2个不同时间的屏幕,然后去比较,现在这个问题已经解决,只是在时间复杂性上不是很满意,不知道大家有没有什么更好的办法,100分哦:)我现在是直接个调用getRGB(x, y)方法然后去比较,这样效率很低。希望能有更好的更快的方法。期待
      

  3.   

    给你提个方案
    Graphics中有XOR描绘方式,即异或描绘方式,相同内容描绘时清空,非相同内容描绘采用RGB异或方式决定某点颜色。
    创建一个BufferedImage,获取其Graphics,设置setXORModel
    你将两个image在该描绘方式下,先后画到你创建的BufferedImage获取的Graphics里,然后看得到的BufferedImage哪些点不是空的就行了
      

  4.   

    先缓存第一个image,然后比较2个image的内容,然后得到不同的地方,把不同传输到远端,远端把不同点同步到之前缓存的image上,就可以保持2个图片一致了。