Skip to content

Commit a135f37

Browse files
committed
1 parent c83cbf1 commit a135f37

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

lib/src/main/java/com/soundcloud/android/crop/CropImageActivity.java

+6-9
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,7 @@
2020
import android.content.Intent;
2121
import android.graphics.Bitmap;
2222
import android.graphics.BitmapFactory;
23-
import android.graphics.BitmapRegionDecoder;
24-
import android.graphics.Canvas;
2523
import android.graphics.Matrix;
26-
import android.graphics.Paint;
2724
import android.graphics.Rect;
2825
import android.graphics.RectF;
2926
import android.net.Uri;
@@ -337,9 +334,9 @@ private Bitmap decodeRegionCrop(Rect rect, int outWidth, int outHeight) {
337334
Bitmap croppedImage = null;
338335
try {
339336
is = getContentResolver().openInputStream(sourceUri);
340-
BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(is, false);
341-
final int width = decoder.getWidth();
342-
final int height = decoder.getHeight();
337+
croppedImage = BitmapFactory.decodeStream(is);
338+
final int width = croppedImage.getWidth();
339+
final int height = croppedImage.getHeight();
343340

344341
if (exifRotation != 0) {
345342
// Adjust crop area to account for image rotation
@@ -359,7 +356,7 @@ private Bitmap decodeRegionCrop(Rect rect, int outWidth, int outHeight) {
359356
if ((rect.width() > outWidth || rect.height() > outHeight)) {
360357
switch (scaleMethod) {
361358
case EXACT:
362-
croppedImage = decoder.decodeRegion(rect, options);
359+
croppedImage = Bitmap.createBitmap(croppedImage, rect.left, rect.top, rect.width(), rect.height());
363360
Matrix matrix = new Matrix();
364361
matrix.postScale((float) outWidth / rect.width(), (float) outHeight / rect.height());
365362
croppedImage = Bitmap.createBitmap(croppedImage, 0, 0, croppedImage.getWidth(), croppedImage.getHeight(), matrix, true);
@@ -373,11 +370,11 @@ private Bitmap decodeRegionCrop(Rect rect, int outWidth, int outHeight) {
373370
h = rect.height() / inSampleSize;
374371
} while(w > outWidth && h > outHeight);
375372
options.inSampleSize = inSampleSize;
376-
croppedImage = decoder.decodeRegion(rect, options);
373+
croppedImage = Bitmap.createBitmap(croppedImage, rect.left, rect.top, w, h);
377374
break;
378375
}
379376
} else {
380-
croppedImage = decoder.decodeRegion(rect, options);
377+
croppedImage = Bitmap.createBitmap(croppedImage, rect.left, rect.top, rect.width(), rect.height());
381378
}
382379
} catch (IllegalArgumentException e) {
383380
// Rethrow with some extra information

0 commit comments

Comments
 (0)