Android 4.0 (API level 14) introduced the ability to get original image size.
iOS uses Image.getSize https://facebook.github.io/react-native/docs/image#getsize
Download via NPM
npm i -S react-native-image-size
Download via Yarn
yarn add react-native-image-size
Afterward make sure to rebuild app, not just refresh bundler.
-- Automaticaly --
Link, either via react-native link
or manually
react-native link react-native-image-size
-- Manually --
+include ':react-native-image-size'
+project(':react-native-image-size').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-size/android')
dependencies {
...
+ implementation project(':react-native-image-size')
...
}
+import com.existfragger.rnimagesize.RNImageSizePackage;
...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<~>asList(
- new MainReactPackage()
+ new MainReactPackage(),
+ new RNImageSizePackage()
);
}
import ImageSize from 'react-native-image-size'
...
ImageSize.getSize(uri).then(size => {
// size.height
// size.width
})
You can also use async/await, if you would prefer.
import ImageSize from 'react-native-image-size'
...
foo = async () => {
const { width, height } = await ImageSize.getSize(uri);
// do stuff with width and height
}