react-native-image-tools
Unfortunately Adobe has discontinued development and support of the Image Editor UI this project is discontinued.
Install instructions here.
An example app is here.
API
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); }
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); }
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",
....
}