Сравнение растровых изображений

1

Есть ли способ поиска реализации/исходного кода этого метода? В API это необходимо для сравнения двух изображений, потому что он сохраняет перезапись исходного изображения и после нескольких раз конвертирования изображения в растровое изображение, изображение не выглядит очень красивым. 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;
}

Однако после нескольких раз сохранения и извлечения из базы данных для ее редактирования изображение переходит из этого: Изображение 174551

к этому: Изображение 174551

а затем, наконец, это: Изображение 174551

Итак, мне нужен способ определить, не изменилось ли изображение для меня, чтобы не переустанавливать массив байтов этого растрового изображения в базу данных.

  • 0
    не могли бы вы уточнить, так как я вас не понял?
  • 0
    в основном мне нужен способ сравнить два растровых изображения, попиксельное или целое.
Показать ещё 1 комментарий
Теги:
android-image

1 ответ

1

EDIT (на основе дополнительной информации)

Вероятно, вы сохраняете изображение в формате JPEG, что является форматом с потерями. Каждый раз, когда вы экономитесь, вы потеряете качество. Если вы загружаете и сохраняете изображение несколько раз, используйте PNG или сохраняйте другую копию с текстом изображения с текстом - когда вам нужно его обновить, начните с оригинала еще раз.

СТАРЫЙ ОТВЕТ:

Вероятно, это не имеет ничего общего с sameAs, а где-то еще вы делаете что-то, чтобы изменить изображение.

Источник находится здесь https://android.googlesource.com.

sameAs - функция JNI, реализованная в C, вы можете найти здесь:
https://android.googlesource.com/platform/frameworks/base/+/master/core/jni/android/graphics/Bitmap.cpp

  • 0
    Я думал об использовании sameAs, чтобы проверить, являются ли оба изображения одинаковыми, вместо того, чтобы реализовать мой собственный

Ещё вопросы

Сообщество Overcoder
Наверх
Меню