A React Native module that can create scaled versions of local images (also supports the assets library on iOS).
Install the package:
- 😻 React Native >= 0.40
npm install --save react-native-image-resizer
react-native link react-native-image-resizer
⚠️ Heads up, breaking change! If you're upgrading react-native-image-resizer to version 1.0.0, please note that the response ofcreateResizedImage
changed. You must now read the image uri from propertyuri
of the returned object. Here is an example. Easy, huh?
- 👨 React Native >= 0.29.2 and < 0.40
npm install --save [email protected]
react-native link react-native-image-resizer
- 👴 React Native >= 0.28 and < 0.29.2
npm install rnpm -g
rnpm install [email protected]
Note: on latest versions of React Native, you may have an error during the Gradle build on Android (com.android.dex.DexException: Multiple dex files define Landroid/support/v7/appcompat/R$anim
). Run cd android && ./gradlew clean
to fix this.
Manual link information for Android: Link
import ImageResizer from 'react-native-image-resizer';
ImageResizer.createResizedImage(imageUri, newWidth, newHeight, compressFormat, quality, rotation).then((response) => {
// response.uri is the URI of the new image that can now be displayed, uploaded...
// response.path is the path of the new image
// response.name is the name of the new image with the extension
// response.size is the size of the new image
}).catch((err) => {
// Oops, something went wrong. Check that the filename is correct and
// inspect err to get more details.
});
A basic, sample app is available in the example
folder. It uses the module to resize a photo from the Camera Roll.
The promise resolves with an object containing: path
, uri
, name
and size
of the new file. The URI can be used directly as the source
of an <Image>
component.
Option | Description |
---|---|
path | Path of image file, or a base64 encoded image string prefixed with 'data:image/imagetype' where imagetype is jpeg or png. |
newHeight | New image width |
newHeight | New image height |
compressFormat | Can be either JPEG, PNG or WEBP (android only). |
quality | A number between 0 and 100. Used for the JPEG compression. |
rotation | Rotation to apply to the image, in degrees, for android. On iOS, rotation is limited (and rounded) to multiples of 90 degrees. |