位图图像比较

时间:2011-05-16 10:56:27

标签: android-image android

有没有办法查找此方法的实现/源代码?它在API中需要比较两个图像,因为它会覆盖原始图像,并且在将图像视图转换为位图几次后,图像看起来不再很好。 http://developer.android.com/reference/android/graphics/Bitmap.html#sameAs(android.graphics.Bitmap)

我正在使用此方法从图像创建位图并将其再次设置为imageview以让用户编辑他的图片。

public static Bitmap getBitmap(ImageView imageView) {

    BitmapDrawable mDrawable =  (BitmapDrawable) imageView.getDrawable();

    Bitmap b = mDrawable.getBitmap();
    return b;
}

但是,在多次保存并从数据库中检索它以进行编辑后,图像将从此变为:enter image description here

到此: enter image description here

然后最后: enter image description here

所以我需要一种检测图像是否未被更改的方法,以免将该位图的字节数组重新保存到数据库中。

1 个答案:

答案 0 :(得分:1)

编辑(基于附加信息)

您可能将图像保存为JPEG格式,这是一种有损格式。每次拯救你都会失去品质。如果您要多次加载和保存图像,请使用PNG或使用文本保留带有图像文本的另一个副本 - 当您需要更新它时,请再次从原始文件开始。

老答案:

它可能与sameAs无关,而在其他地方你正在做一些改变图像的事情。

来源是https://android.googlesource.com

sameAs是用C实现的JNI函数,你可以在这里找到它:
https://android.googlesource.com/platform/frameworks/base/+/master/core/jni/android/graphics/Bitmap.cpp