ExifInterface.getAttributeInt (ExifInterface.TAG_ORIENTATION, 1) всегда возвращает 0 - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь повторить этот ответ , который находит ориентацию изображения андроида:

fun getCameraPhotoOrientation(context: Context, inputStream: InputStream, uri: Uri): Int {
    val exif = if (android.os.Build.VERSION.SDK_INT > 24) ExifInterface(inputStream) else ExifInterface(uri.path)
    val orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1)
    val rotate = when (orientation){
        ExifInterface.ORIENTATION_ROTATE_270 -> 270
        ExifInterface.ORIENTATION_ROTATE_180 -> 180
        ExifInterface.ORIENTATION_ROTATE_90 -> 90
        else -> 0
    }
        Log.d(TAG, "Exif orientation: $orientation") // prints 0 every time
        Log.d(TAG, "Rotate value: $rotate") // prints 0 every time
    return rotate
}

Даже если изображения, которые я пропускаю, загружены неверно (не портрет), orientation по-прежнему возвращает 0.

Вот я вызываю функцию:

val inputStream = contentResolver.openInputStream(uri)!!
getCameraPhotoOrientation(this, inputStream, uri)

Есть идеи, как это исправить?

...