1

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

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

public static Bitmap getBitmap(ImageView imageView) {

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

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

但是,经过多次保存并从数据库中检索并对其进行编辑后,图像变成了这样:在此处输入图像描述

对此: 在此处输入图像描述

最后是这个: 在此处输入图像描述

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

4

1 回答 1

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

于 2011-05-16T11:16:58.890 回答