在 Android 11 中,可以通过使用 androidx.exifinterface.media.ExifInterface
类从 EXIF 数据中获取图像的方向。以下是一个包含代码示例的解决方法:
import androidx.exifinterface.media.ExifInterface
// 传入图像文件的路径,返回图像的方向
fun getImageOrientation(imagePath: String): Int {
val exif = ExifInterface(imagePath)
val orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED)
return when (orientation) {
ExifInterface.ORIENTATION_ROTATE_90 -> 90
ExifInterface.ORIENTATION_ROTATE_180 -> 180
ExifInterface.ORIENTATION_ROTATE_270 -> 270
else -> 0
}
}
使用示例:
val imagePath = "/path/to/image.jpg"
val imageOrientation = getImageOrientation(imagePath)
println("Image orientation: $imageOrientation degrees")
上述代码中,我们首先创建了一个 ExifInterface
对象,传入图像文件的路径。然后,使用 getAttributeInt
方法获取图像的方向属性值。最后,根据方向值返回相应的角度值。
请注意,上述代码只适用于 Android 11 及以上版本。如果你的应用还需要支持 Android 10 或更早的版本,可以考虑使用 androidx.exifinterface.ExifInterface
类来替代 ExifInterface
,使用方式类似。