            // actually we want to return just the first item, but array.getMap returns ReadableMap
            // which is not compatible with promise.resolve and there is no simple solution to convert
            // ReadableMap to WritableMap so it's easier to return an array and pick the first item on JS side
-@@ -126,7 +131,7 @@ final class MediaLibraryUtils {
+@@ -126,7 +133,7 @@ final class MediaLibraryUtils {
      }
    }
  

+    int height = cursor.getInt(heightIndex);
+    int orientation = cursor.getInt(orientationIndex);
+
+    if (width <= 0 || height <= 0) {
       BitmapFactory.Options options = new BitmapFactory.Options();
       options.inJustDecodeBounds = true;
+      BitmapFactory.decodeFile(uri, options);

     final int idIndex = cursor.getColumnIndex(Media._ID);
     final int filenameIndex = cursor.getColumnIndex(Media.DISPLAY_NAME);
     final int mediaTypeIndex = cursor.getColumnIndex(Files.FileColumns.MEDIA_TYPE);
@@ -142,9 +149,16 @@ final class MediaLibraryUtils {
       return;
     }
     for (int i = 0; i < limit && !cursor.isAfterLast(); i++) {
