From 73d7c221caf0c585ff3b2604223d32fb13699cc2 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 9 May 2016 15:33:19 +0300 Subject: [PATCH] add `noOutputImage` option for crop image activity --- .../theartofdev/edmodo/cropper/CropImage.java | 9 +++++++++ .../edmodo/cropper/CropImageActivity.java | 16 ++++++++++------ .../edmodo/cropper/CropImageOptions.java | 8 ++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImage.java b/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImage.java index 943c33a9..5df2693b 100644 --- a/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImage.java +++ b/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImage.java @@ -598,6 +598,15 @@ public ActivityBuilder setRequestedSize(int reqWidth, int reqHeight) { return this; } + /** + * if the result of crop image activity should not save the cropped image bitmap.
+ * Used if you want to crop the image manually and need only the crop rectangle and rotation data. + */ + public ActivityBuilder setNoOutputImage(boolean noOutputImage) { + mOptions.noOutputImage = noOutputImage; + return this; + } + /** * the initial rectangle to set on the cropping image after loading */ diff --git a/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImageActivity.java b/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImageActivity.java index 43415680..ba58db06 100644 --- a/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImageActivity.java +++ b/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImageActivity.java @@ -157,12 +157,16 @@ public void onSaveCroppedImageComplete(CropImageView view, Uri uri, Exception er * Execute crop image and save the result tou output uri. */ protected void cropImage() { - Uri outputUri = getOutputUri(); - mCropImageView.saveCroppedImageAsync(outputUri, - mOptions.outputCompressFormat, - mOptions.outputCompressQuality, - mOptions.outputRequestWidth, - mOptions.outputRequestHeight); + if (mOptions.noOutputImage) { + setResult(null, null); + } else { + Uri outputUri = getOutputUri(); + mCropImageView.saveCroppedImageAsync(outputUri, + mOptions.outputCompressFormat, + mOptions.outputCompressQuality, + mOptions.outputRequestWidth, + mOptions.outputRequestHeight); + } } /** diff --git a/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImageOptions.java b/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImageOptions.java index 8218f789..dec23144 100644 --- a/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImageOptions.java +++ b/cropper/src/main/java/com/theartofdev/edmodo/cropper/CropImageOptions.java @@ -222,6 +222,11 @@ public CropImageOptions[] newArray(int size) { */ public int outputRequestHeight; + /** + * if the result of crop image activity should not save the cropped image bitmap + */ + public boolean noOutputImage; + /** * the initial rectangle to set on the cropping image after loading */ @@ -285,6 +290,7 @@ public CropImageOptions() { outputCompressQuality = 90; outputRequestWidth = 0; outputRequestHeight = 0; + noOutputImage = false; initialCropWindowRectangle = null; initialRotation = -1; @@ -330,6 +336,7 @@ protected CropImageOptions(Parcel in) { outputCompressQuality = in.readInt(); outputRequestWidth = in.readInt(); outputRequestHeight = in.readInt(); + noOutputImage = in.readByte() != 0; initialCropWindowRectangle = in.readParcelable(Rect.class.getClassLoader()); initialRotation = in.readInt(); allowRotation = in.readByte() != 0; @@ -372,6 +379,7 @@ public void writeToParcel(Parcel dest, int flags) { dest.writeInt(outputCompressQuality); dest.writeInt(outputRequestWidth); dest.writeInt(outputRequestHeight); + dest.writeInt(noOutputImage ? 1 : 0); dest.writeParcelable(initialCropWindowRectangle, flags); dest.writeInt(initialRotation); dest.writeByte((byte) (allowRotation ? 1 : 0));