【发布时间】:2013-01-05 13:41:35
【问题描述】:
所以,我在 Android 上使用文件共享应用程序。它会创建一个复制副本并上传到它的服务器。
问题
以下代码适用于我手动创建的重复副本。也就是说,我长按并使用文件管理器将文件复制到同一目录中。然后我的函数返回true。当它比较由于应用程序导致的重复图像和原始图像时,我得到false。
MD5 校验和不同,因此无法选择。
代码
public boolean equals(Bitmap bitmap1, Bitmap bitmap2) {
ByteBuffer buffer1 = ByteBuffer.allocate(bitmap1.getHeight()
* bitmap1.getRowBytes());
bitmap1.copyPixelsToBuffer(buffer1);
ByteBuffer buffer2 = ByteBuffer.allocate(bitmap2.getHeight()
* bitmap2.getRowBytes());
bitmap2.copyPixelsToBuffer(buffer2);
return Arrays.equals(buffer1.array(), buffer2.array());
}
这是图片:
我的代码目前在比较这两个图像时返回 false。 如何让代码返回 true?
【问题讨论】:
-
你的问题不是很清楚请说清楚。
-
@AliImran 这样更好吗?
-
你的这条线很混乱
When it compares the duplicate image due to the app and the original image这里你说due to the app是什么意思? -
@AliImran 我用于文件共享的第三方应用程序创建图像的副本并上传。那就是我所说的“由于应用程序”所指的重复图像。
-
问题与第三方应用有关。是否尝试调试您的代码?并检查
ByteBuffer的大小,因为它必须与原始图像不同,这是因为第三方应用程序可能在原始图像中使用了一些压缩。
标签: android image-processing bitmap duplicates