diff --git a/node_modules/react-native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java b/node_modules/react-native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java index 5de0845..fa477e7 100644 --- a/node_modules/react-native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java +++ b/node_modules/react-native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java @@ -21,6 +21,7 @@ import android.webkit.MimeTypeMap; import androidx.core.app.ActivityCompat; import androidx.core.content.FileProvider; +import androidx.exifinterface.media.ExifInterface; import com.facebook.react.bridge.ActivityEventListener; import com.facebook.react.bridge.Callback; @@ -678,6 +679,15 @@ class PickerModule extends ReactContextBaseJavaModule implements ActivityEventLi throw new Exception("Cannot select remote files"); } BitmapFactory.Options original = validateImage(path); + ExifInterface originalExif = new ExifInterface(path); + int orientation = originalExif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1); + boolean invertDimensions = ( + orientation == ExifInterface.ORIENTATION_ROTATE_90 || + orientation == ExifInterface.ORIENTATION_ROTATE_270 || + orientation == ExifInterface.ORIENTATION_TRANSPOSE || + orientation == ExifInterface.ORIENTATION_TRANSVERSE + ); + // if compression options are provided image will be compressed. If none options is provided, // then original image will be returned @@ -687,8 +697,8 @@ class PickerModule extends ReactContextBaseJavaModule implements ActivityEventLi long modificationDate = new File(path).lastModified(); image.putString("path", "file://" + compressedImagePath); - image.putInt("width", options.outWidth); - image.putInt("height", options.outHeight); + image.putInt("width", invertDimensions ? options.outHeight : options.outWidth); + image.putInt("height", invertDimensions ? options.outWidth : options.outHeight); image.putString("mime", options.outMimeType); image.putInt("size", (int) new File(compressedImagePath).length()); image.putString("modificationDate", String.valueOf(modificationDate));