diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2012-10-12 02:03:18 -0700 |
---|---|---|
committer | Ruben Brunk <rubenbrunk@google.com> | 2012-10-12 10:18:08 -0700 |
commit | 46163a396828fa000b4a53cf87811e4111e3cb88 (patch) | |
tree | 2e4b742624bf07cf5243ee7167ffc02c65d89c4b /src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java | |
parent | 808dbe19752361ad171b58836df7f195deee8019 (diff) | |
download | android_packages_apps_Gallery2-46163a396828fa000b4a53cf87811e4111e3cb88.tar.gz android_packages_apps_Gallery2-46163a396828fa000b4a53cf87811e4111e3cb88.tar.bz2 android_packages_apps_Gallery2-46163a396828fa000b4a53cf87811e4111e3cb88.zip |
Moves matrix function to GeometryMetadata. Fixes scaling issues.
Bug:7337191
Change-Id: Icfd50c8a07ef02f2346a8ab7b57303de3866d74d
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java index 08c09fb8e..527800e13 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java @@ -62,22 +62,15 @@ public class ImageFilterGeometry extends ImageFilter { Bitmap dst, int dstWidth, int dstHeight, float straightenAngle); public Matrix buildMatrix(Bitmap bitmap, boolean rotated) { - Matrix drawMatrix = new Matrix(); - float dx = bitmap.getWidth() / 2.0f; - float dy = bitmap.getHeight() / 2.0f; - - Matrix flipper = mGeometry.getFlipMatrix(bitmap.getWidth(), bitmap.getHeight()); - drawMatrix.postConcat(flipper); - drawMatrix.postTranslate(-dx, -dy); - drawMatrix.postScale(1.0f / mGeometry.getScaleFactor(), 1.0f / mGeometry.getScaleFactor()); - float angle = (mGeometry.getRotation() + mGeometry.getStraightenRotation()); - drawMatrix.postRotate(angle); - if (rotated) { - drawMatrix.postTranslate(dy, dx); - } else { - drawMatrix.postTranslate(dx, dy); + float dx = bitmap.getWidth()/2; + float dy = bitmap.getHeight()/2; + if(mGeometry.hasSwitchedWidthHeight()){ + float temp = dx; + dx = dy; + dy = temp; } - return drawMatrix; + Matrix m = mGeometry.buildGeometryMatrix(bitmap.getWidth(), bitmap.getHeight(), 1f/mGeometry.getScaleFactor(), dx, dy); + return m; } @Override |