summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-13 18:10:26 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-10-13 18:10:26 -0700
commit17a417908e6c5514f117f37c6762d5aaab720ebd (patch)
tree7aeb0abe52680639cb04bf2ce84d32e65c82a42f
parent2983058be80e068b07ddca0c069b4068b1d966a5 (diff)
parent1c44be4899c454e359cdde0b62f7678c59e0a8fa (diff)
downloadandroid_packages_apps_Snap-17a417908e6c5514f117f37c6762d5aaab720ebd.tar.gz
android_packages_apps_Snap-17a417908e6c5514f117f37c6762d5aaab720ebd.tar.bz2
android_packages_apps_Snap-17a417908e6c5514f117f37c6762d5aaab720ebd.zip
am b470b229: Fix cropping and saving issues
* commit 'b470b229fbfd782db6758f331e4a6f918e305b02': Fix cropping and saving issues
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java8
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java11
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java2
3 files changed, 15 insertions, 6 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java
index 9bdffee2e..3d48b7e53 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java
@@ -84,9 +84,9 @@ public class ImageFilterGeometry extends ImageFilter {
// canvas to do a simple implementation...
// TODO: and be more memory efficient! (do it in native?)
Rect cropBounds = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
- RectF c = mGeometry.getCropBounds();
- if(c != null && c.width() > 0 && c.height() > 0)
- c.roundOut(cropBounds);
+ RectF crop = mGeometry.getCropBounds(bitmap);
+ if(crop.width() > 0 && crop.height() > 0)
+ crop.roundOut(cropBounds);
Bitmap temp = null;
if (mGeometry.hasSwitchedWidthHeight()) {
temp = Bitmap.createBitmap(cropBounds.height(), cropBounds.width(), mConfig);
@@ -94,7 +94,7 @@ public class ImageFilterGeometry extends ImageFilter {
temp = Bitmap.createBitmap(cropBounds.width(), cropBounds.height(), mConfig);
}
- Matrix drawMatrix = buildMatrix(c);
+ Matrix drawMatrix = buildMatrix(crop);
Canvas canvas = new Canvas(temp);
canvas.drawBitmap(bitmap, drawMatrix, new Paint());
return temp;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
index d412f5890..352fa5bf3 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
@@ -74,10 +74,19 @@ public class GeometryMetadata {
return mStraightenRotation;
}
- public RectF getCropBounds() {
+ public RectF getPreviewCropBounds() {
return new RectF(mCropBounds);
}
+ public RectF getCropBounds(Bitmap bitmap) {
+ float scale = 1.0f;
+ if (mPhotoBounds.width() > 0) {
+ scale = bitmap.getWidth() / mPhotoBounds.width();
+ }
+ return new RectF(mCropBounds.left * scale, mCropBounds.top * scale,
+ mCropBounds.right * scale, mCropBounds.bottom * scale);
+ }
+
public FLIP getFlipType() {
return mFlip;
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java b/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
index d8d03dc22..68df702ea 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
@@ -122,7 +122,7 @@ public abstract class ImageGeometry extends ImageSlave {
}
protected RectF getLocalCropBounds() {
- return mLocalGeometry.getCropBounds();
+ return mLocalGeometry.getPreviewCropBounds();
}
protected RectF getLocalDisplayBounds() {