Get original image size (iOS + Android)
npm install react-native-image-size
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
``shell`
npm i -S react-native-image-size
Download via Yarn
`shell`
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
`shell`
react-native link react-native-image-size
-- Manually --
#### android/settings.gradle
`diff`
+include ':react-native-image-size'
+project(':react-native-image-size').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-size/android')`
#### android/app/build.gradlediff`
dependencies {
...
+ implementation project(':react-native-image-size')
...
}`
#### android/app/src/main/java/.../MainApplication.javadiff`
+import com.existfragger.rnimagesize.RNImageSizePackage;
...
@Override
protected List
return Arrays.<~>asList(
- new MainReactPackage()
+ new MainReactPackage(),
+ new RNImageSizePackage()
);
}
`js`
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.
`js``
import ImageSize from 'react-native-image-size'
...
foo = async () => {
const { width, height } = await ImageSize.getSize(uri);
// do stuff with width and height
}