У меня есть эта функция расширения для создания растрового изображения из Uri
fun Uri.getBitmap(resolver: ContentResolver): Bitmap {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
@Suppress("DEPRECATION")
return MediaStore.Images.Media.getBitmap(resolver, this)
} else {
val source = ImageDecoder.createSource(resolver, this)
return ImageDecoder.decodeBitmap(source)
}
}
В Build.VERSION.SDK_INT >= Build.VERSION_CODES.P
, поэтому при использовании ImageDecoder.createSource
я получаю это исключение:
CvException [org.opencv.core.CvException: OpenCV(4.1.1) /build/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:38: error: (-215:Assertion failed) AndroidBitmap_lockPixels(env, bitmap, &pixels) >= 0
Находясь на Build.VERSION.SDK_INT < Build.VERSION_CODES.P
, поэтому при использовании MediaStore.Images.Media.getBitmap
все работает нормально.
Чего мне не хватает?