diff options
author | John Hoford <hoford@google.com> | 2013-02-13 11:40:52 -0800 |
---|---|---|
committer | John Hoford <hoford@google.com> | 2013-02-13 13:04:07 -0800 |
commit | da7b84da52579cc967816e11f10acd9d9b3c714b (patch) | |
tree | 6e873673476a87bbbb12077becd11ac91d9bda64 | |
parent | c81c9a87075e89acb940ff6cb1293b48ac7b1cb0 (diff) | |
download | android_packages_apps_Snap-da7b84da52579cc967816e11f10acd9d9b3c714b.tar.gz android_packages_apps_Snap-da7b84da52579cc967816e11f10acd9d9b3c714b.tar.bz2 android_packages_apps_Snap-da7b84da52579cc967816e11f10acd9d9b3c714b.zip |
fix draw to support rotation/crop
Change-Id: Iea1db9e42f1fa2b86a452bf1d40b1663b69d03e2
3 files changed, 11 insertions, 7 deletions
diff --git a/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java b/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java index 2815936f8..1e9f6b83a 100644 --- a/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java +++ b/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java @@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow.cache; import android.graphics.Bitmap; import com.android.gallery3d.app.Log; +import com.android.gallery3d.filtershow.imageshow.MasterImage; import com.android.gallery3d.filtershow.presets.ImagePreset; public class RenderingRequest { @@ -47,7 +48,9 @@ public class RenderingRequest { bitmap = Bitmap.createBitmap(source.getWidth(), source.getHeight(), mConfig); } request.setBitmap(bitmap); - request.setImagePreset(new ImagePreset(preset)); + ImagePreset passedPreset = new ImagePreset(preset); + passedPreset.setImageLoader(MasterImage.getImage().getImageLoader()); + request.setImagePreset(passedPreset); request.setType(type); request.setCaller(caller); request.post(); diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java index 9fa4ce97e..4b21d3595 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java @@ -27,6 +27,7 @@ import android.graphics.Path; import android.graphics.PathMeasure; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; +import android.graphics.Rect; import android.util.Log; import com.android.gallery3d.R; @@ -266,13 +267,12 @@ public class ImageFilterDraw extends ImageFilter { public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); - short[] rect = new short[4]; - - Matrix m = new Matrix(); - m.setScale(scaleFactor, scaleFactor); + ImagePreset imgPreset = getImagePreset(); + Rect bounds = imgPreset.getImageLoader().getOriginalBounds(); + Matrix m = imgPreset.mGeoData.getOriginalToScreen(true, + bounds.width(), + bounds.height(), w, h); drawData(new Canvas(bitmap), m, quality); - - return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index 3ee55ada5..e3594848c 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -411,6 +411,7 @@ public class ImagePreset { } ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(representation); filter.useRepresentation(representation); + filter.setImagePreset(this); bitmap = filter.apply(bitmap, mScaleFactor, mQuality); } } |