У меня есть следующий метод для поворота изображения, если это необходимо, и это метод расширения для класса Uri
suspend fun Uri.rotateImageIfRequired(ctx: Context): Uri {
Log.i("AMIRA3333" , "uri2 : " + this)
val originalBitmap = MediaStore.Images.Media.getBitmap(ctx.contentResolver, this)
val originalImagePath = this.getPath(ctx)
val exifInterface = ExifInterface(originalImagePath)
val orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL)
return when (orientation) {
ExifInterface.ORIENTATION_ROTATE_90 -> TransformationUtils.rotateImage(originalBitmap, 90)
ExifInterface.ORIENTATION_ROTATE_180 -> TransformationUtils.rotateImage(originalBitmap, 180)
ExifInterface.ORIENTATION_ROTATE_270 -> TransformationUtils.rotateImage(originalBitmap, 270)
else -> originalBitmap
}.let {
GlobalScope.async {
File(originalImagePath).deleteOnExit()
Uri.parse(
MediaStore.Images.Media.insertImage(
ctx.contentResolver,
it,
System.currentTimeMillis().toString(),
null
)
)
}.await()
}
}
, и это пример для моего uri: file: /// storage / emulated / 0/DCIM/IMG_20190219_072926.jpg
всегда возвращается null