react-native-image-tools
react-native-image-tools copied to clipboard
Image editing software powered by Abode Creative SDK for iOS and Android.
Unfortunately Adobe has discontinued development and support of the Image Editor UI this project is discontinued.
~~react-native-image-tools~~
Install instructions here.
An example app is here.

API
RNImageTools.openEditor(options)
Opens the Adobe Image Editor. Returns a promise which when resolved contains a uri to the output image, or null if editing was cancelled.
options parameter:
name | description | default value | type |
---|---|---|---|
imageUri | the input image | n/a | string (see below) |
outputFormat | the image type, must correspond to the input image type (generating PNG from JPEG or vider-vesa is not supported) | JPEG | string (either 'JPEG' or 'PNG') |
quality | representing the JPEG compression % (Ignored for PNG) | 80 | integer (a value between 0 and 100) |
preserveMetadata (iOS only) | copies image metadata (exif tags) from the input image to the output image | true | boolean |
saveTo | determines where the output image will be saved | photos | string ('photos' or 'file') |
Supported imageUri
formats include:
-
path e.g.
/foo/bar/image.jpeg
-
file url e.g.
file:///foo/bar/image.jpeg
-
url e.g.
http://foo.com/bar/image.jpeg
-
asset-uri (iOS only) e.g.
assets-library://asset/asset.JPG?id=foo&EXT=JPG
-
content-uri (android only) e.g.
content://media/external/images/foo/bar/JPEG
import RNImageTools from "react-native-image-tools";
...
try {
const uri = await RNImageTools.openEditor({
imageUri,
outputFormat,
quality,
preserveMetadata,
saveTo
});
} catch (e) {
console.warn("error", e);
}
RNImageTools.selectImage(options)
Opens the native image picker dialog. Returns a promise which when resolved returns an object containing the uri to the chosen image as well as some other useful information, or null if cancelled.
options parameter:
name | description | default value | type |
---|---|---|---|
title | optional title (android only) | n/a | string |
import RNImageTools from "react-native-image-tools";
...
try {
const uri = await RNImageTools.selectImage({title});
} catch (e) {
console.warn("error", e);
}
RNImageTools.imageMetadata(imageUri)
Returns a promise which when resolved returns object containing the image metadata.
import RNImageTools from "react-native-image-tools";
...
try {
const metadata = await RNImageTools.imageMetadata(imageUri);
} catch (e) {
console.warn("error", e);
}
Customizing
since i dont have much time to make the costumization work from js method. here some of configuration that u need to add / change in order to customize the image editor
Fork this project, then change some of file bellow
// react-native-image-tools/android/src/main/java/com/pomocorp/rnimagetools/RNUmageToolsModule.java
AdobeImageIntent.Builder builder = new AdobeImageIntent.Builder(reactContext)
.setData(imageUri)
.withToolList(new ToolsFactory.Tools[]{
// Just Comment or remove anything u dont need
CROP,
ORIENTATION,
ENHANCE,
TEXT,
DRAW,
MEME,
FOCUS,
VIGNETTE,
SHARPNESS,
BLUR,
COLOR,
EFFECTS,
ADJUST,
PERSPECTIVE,
REDEYE,
WHITEN,
BLEMISH,
SPLASH,
LIGHTING,
OVERLAYS,
FRAMES,
STICKERS,
})
....
//react-native-image-tools/ios/RNImageTools.xcodeproj/RNImageTools.m
- (void) sendToEditor:(UIImage*)image {
// Just Comment or remove anything u dont need
[AdobeImageEditorCustomization setToolOrder:@[
kAdobeImageEditorEnhance, /* Enhance */
kAdobeImageEditorEffects, /* Effects */
kAdobeImageEditorStickers, /* Stickers */
kAdobeImageEditorOrientation, /* Orientation */
kAdobeImageEditorCrop, /* Crop */
kAdobeImageEditorColorAdjust, /* Color */
kAdobeImageEditorLightingAdjust, /* Lighting */
kAdobeImageEditorSharpness, /* Sharpness */
kAdobeImageEditorDraw, /* Draw */
kAdobeImageEditorText, /* Text */
kAdobeImageEditorRedeye, /* Redeye */
kAdobeImageEditorWhiten, /* Whiten */
kAdobeImageEditorBlemish, /* Blemish */
kAdobeImageEditorBlur, /* Blur */
kAdobeImageEditorMeme, /* Meme */
kAdobeImageEditorFrames, /* Frames */
kAdobeImageEditorFocus, /* TiltShift */
kAdobeImageEditorSplash, /* ColorSplash */
kAdobeImageEditorOverlay, /* Overlay */
kAdobeImageEditorVignette /* Vignette */
]];
....
}
"dependencies": {
....
"react-native-image-tools": "git+https://github.com/<your-git-username>/react-native-image-tools.git",
....
}