Open imdineshsingh opened 2 years ago
Hello! Sorry i don't use kotlin so this may be unhelpful but in Python, upon performing something similar, the photo had exif rotation data. You can either get rid of that rotation data or better yet, just utilize that date so your device actually knows what the "Right side up" is.
Here is the Python code after opening it with PIL:
ImageOps.exif_transpose(img)
Hope this helps and there is a Kotlin equivalent
I am getting issue, when Image is taken from front camera it gets Rotated after compression,
You can add this code to your own class, call the function and save bitmap to file after get rotated image.
private fun getRotateImage(photoPath: String?, bitmap: Bitmap): Bitmap? {
val ei = ExifInterface(
photoPath!!
)
val orientation = ei.getAttributeInt(
ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_UNDEFINED
)
val rotatedBitmap: Bitmap? = when (orientation) {
ExifInterface.ORIENTATION_ROTATE_90 -> rotateImage(bitmap, 90f)
ExifInterface.ORIENTATION_ROTATE_180 -> rotateImage(bitmap, 180f)
ExifInterface.ORIENTATION_ROTATE_270 -> rotateImage(bitmap, 270f)
ExifInterface.ORIENTATION_NORMAL -> bitmap
else -> bitmap
}
return rotatedBitmap
}
private fun rotateImage(source: Bitmap, angle: Float): Bitmap? {
val matrix = Matrix()
matrix.postRotate(angle)
return Bitmap.createBitmap(
source, 0, 0, source.width, source.height,
matrix, true
)
}
val bitmap: Bitmap = MediaStore.Images.Media.getBitmap(contentResolver, uri)
val rotatedImage = CheckRotatedImage.getRotateImage(filePathReal, bitmap)`
I am getting issue, when Image is taken from front camera it gets Rotated after compression,