I’ve been dealing with an issue on Android for a long time: when fetching photos from the gallery—especially ones taken with the camera—the Image.getSize method often returns incorrect width and height values.
After trying several libraries without success, I decided to build a simple native module myself to solve this once and for all. If you’ve run into this same problem, I hope this saves you the frustration I went through.
I’ve published the fix as a small open-source package: [react-native-image-size-android](https://www.npmjs.com/package/react-native-image-size-android)
usage:
```
import { getImageSize } from 'react-native-image-size-android';
type ImageSize = {
width: number;
height: number;
};
const uri = 'content://media/external/images/media/123';
try {
const size = await getImageSize(uri);
console.log('Image size:', size.width, size.height);
} catch (error) {
console.error('Failed to get image size:', error);
}
```
When using CameraRoll on Android, especially with photos taken directly by the camera, it often fails to return accurate width and height values. This caused issues in my image editor — the crop functionality would break because of these incorrect dimensions.
So, I built a small native module to solve this problem. If you’re facing the same issue and ended up here looking for a fix, feel free to try this package:
[react-native-image-size-android](https://www.npmjs.com/package/react-native-image-size-android)
```
import { getImageSize } from 'react-native-image-size-android';
type ImageSize = {
width: number;
height: number;
};
const uri = 'content://media/external/images/media/123';
try {
const size = await getImageSize(uri);
console.log('Image size:', size.width, size.height);
} catch (error) {
console.error('Failed to get image size:', error);
}
```