From c04f50dd1ed5523c21e587bc899e7d3610e68b25 Mon Sep 17 00:00:00 2001 From: John Hoford Date: Tue, 12 Feb 2013 11:55:50 -0800 Subject: refactor quality to be int Change-Id: I0470abdbe75cf48c5228e80b9dc060ae6f3d8bbd --- .../filtershow/cache/FilteringPipeline.java | 4 +-- .../gallery3d/filtershow/cache/ImageLoader.java | 4 +-- .../gallery3d/filtershow/editors/EditorDraw.java | 4 +++ .../filters/FilterDrawRepresentation.java | 26 +++++++++++++++--- .../gallery3d/filtershow/filters/ImageFilter.java | 6 ++-- .../filtershow/filters/ImageFilterBorder.java | 4 +-- .../filtershow/filters/ImageFilterBwFilter.java | 2 +- .../filtershow/filters/ImageFilterContrast.java | 2 +- .../filtershow/filters/ImageFilterCurves.java | 2 +- .../filtershow/filters/ImageFilterDownsample.java | 4 +-- .../filtershow/filters/ImageFilterDraw.java | 32 ++++++++++++---------- .../filtershow/filters/ImageFilterEdge.java | 2 +- .../filtershow/filters/ImageFilterExposure.java | 2 +- .../filtershow/filters/ImageFilterFx.java | 2 +- .../filtershow/filters/ImageFilterGeometry.java | 2 +- .../filtershow/filters/ImageFilterHue.java | 2 +- .../filtershow/filters/ImageFilterKMeans.java | 2 +- .../filtershow/filters/ImageFilterNegative.java | 2 +- .../filters/ImageFilterParametricBorder.java | 4 +-- .../filtershow/filters/ImageFilterRS.java | 10 +++---- .../filtershow/filters/ImageFilterRedEye.java | 2 +- .../filtershow/filters/ImageFilterSaturated.java | 2 +- .../filtershow/filters/ImageFilterShadows.java | 2 +- .../filtershow/filters/ImageFilterSharpen.java | 2 +- .../filtershow/filters/ImageFilterStraighten.java | 2 +- .../filtershow/filters/ImageFilterTinyPlanet.java | 2 +- .../filtershow/filters/ImageFilterVibrance.java | 2 +- .../filtershow/filters/ImageFilterVignette.java | 2 +- .../filtershow/filters/ImageFilterWBalance.java | 2 +- .../filtershow/filters/SimpleImageFilter.java | 4 +-- .../filtershow/imageshow/GeometryMetadata.java | 4 +-- .../gallery3d/filtershow/imageshow/ImageDraw.java | 5 ---- .../gallery3d/filtershow/presets/ImagePreset.java | 19 +++++++------ 33 files changed, 95 insertions(+), 73 deletions(-) (limited to 'src') diff --git a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java index 4f5cfc4f9..b51d8b03d 100644 --- a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java +++ b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java @@ -190,9 +190,9 @@ public class FilteringPipeline implements Handler.Callback { private void setPresetParameters(ImagePreset preset) { preset.setScaleFactor(mPreviewScaleFactor); if (mPreviewScaleFactor < 1.0f) { - preset.setIsHighQuality(false); + preset.setQuality(ImagePreset.QUALITY_PREVIEW); } else { - preset.setIsHighQuality(true); + preset.setQuality(ImagePreset.QUALITY_PREVIEW); } } diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java index b47d13b9e..908100a32 100644 --- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java +++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java @@ -392,7 +392,7 @@ public class ImageLoader { public void saveImage(ImagePreset preset, final FilterShowActivity filterShowActivity, File destination) { - preset.setIsHighQuality(true); + preset.setQuality(ImagePreset.QUALITY_FINAL); preset.setScaleFactor(1.0f); new SaveCopyTask(mContext, mUri, destination, new SaveCopyTask.Callback() { @@ -432,7 +432,7 @@ public class ImageLoader { public void returnFilteredResult(ImagePreset preset, final FilterShowActivity filterShowActivity) { - preset.setIsHighQuality(true); + preset.setQuality(ImagePreset.QUALITY_FINAL); preset.setScaleFactor(1.0f); BitmapTask.Callbacks cb = new BitmapTask.Callbacks() { diff --git a/src/com/android/gallery3d/filtershow/editors/EditorDraw.java b/src/com/android/gallery3d/filtershow/editors/EditorDraw.java index 128af8ec7..907d1083e 100644 --- a/src/com/android/gallery3d/filtershow/editors/EditorDraw.java +++ b/src/com/android/gallery3d/filtershow/editors/EditorDraw.java @@ -120,6 +120,10 @@ public class EditorDraw extends Editor { } else if (item.getItemId() == R.id.draw_menu_style_line) { ImageDraw idraw = (ImageDraw) mImageShow; idraw.setStyle(ImageFilterDraw.SIMPLE_STYLE); + } else if (item.getItemId() == R.id.draw_menu_clear) { + FilterDrawRepresentation drawRep = (FilterDrawRepresentation) getLocalRepresentation(); + drawRep.clear(); + commitLocalRepresentation(); } mView.invalidate(); return true; diff --git a/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java index b8fa0a3d4..b2e1ed39b 100644 --- a/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java +++ b/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java @@ -17,6 +17,8 @@ package com.android.gallery3d.filtershow.filters; import android.graphics.Path; +import android.util.Log; + import com.android.gallery3d.R; import com.android.gallery3d.filtershow.editors.EditorDraw; @@ -30,7 +32,7 @@ public class FilterDrawRepresentation extends FilterRepresentation { public Path mPath; public float mRadius; public int mColor; - + public int noPoints = 0; @Override public String toString() { return "stroke(" + mType + ", path(" + (mPath) + "), " + mRadius + " , " @@ -57,7 +59,8 @@ public class FilterDrawRepresentation extends FilterRepresentation { @Override public String toString() { return getName() + " : strokes=" + mDrawing.size() - + ((mCurrent == null) ? " no current " : ("current=" + mCurrent.mType)); + + ((mCurrent == null) ? " no current " + : ("draw=" + mCurrent.mType + " " + mCurrent.noPoints)); } public Vector getDrawing() { @@ -95,6 +98,8 @@ public class FilterDrawRepresentation extends FilterRepresentation { } catch (CloneNotSupportedException e) { e.printStackTrace(); } + } else { + Log.v(LOGTAG, "cannot use parameters from " + a); } } @@ -104,8 +109,18 @@ public class FilterDrawRepresentation extends FilterRepresentation { return false; } if (representation instanceof FilterDrawRepresentation) { - // FIXME! - return true; + FilterDrawRepresentation fdRep = (FilterDrawRepresentation) representation; + if (fdRep.mDrawing.size() != mDrawing.size()) + return false; + if (fdRep.mCurrent == null && mCurrent.mPath == null) { + return true; + } + if (fdRep.mCurrent != null && mCurrent.mPath != null) { + if (fdRep.mCurrent.noPoints == mCurrent.noPoints) { + return true; + } + return false; + } } return false; } @@ -117,14 +132,17 @@ public class FilterDrawRepresentation extends FilterRepresentation { mCurrent.mType = type; mCurrent.mPath = new Path(); mCurrent.mPath.moveTo(x, y); + mCurrent.noPoints = 0; } public void addPoint(float x, float y) { + mCurrent.noPoints++; mCurrent.mPath.lineTo(x, y); } public void endSection(float x, float y) { mCurrent.mPath.lineTo(x, y); + mCurrent.noPoints++; mDrawing.add(mCurrent); mCurrent = null; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java index d7a76d614..00499cb74 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java @@ -37,7 +37,7 @@ public class ImageFilter implements Cloneable { return mName; } - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { // do nothing here, subclasses will implement filtering here return bitmap; } @@ -46,8 +46,8 @@ public class ImageFilter implements Cloneable { * Called on small bitmaps to create button icons for each filter. * Override this to provide filter-specific button icons. */ - public Bitmap iconApply(Bitmap bitmap, float scaleFactor, boolean highQuality) { - return apply(bitmap, scaleFactor, highQuality); + public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) { + return apply(bitmap, scaleFactor, quality); } public ImagePreset getImagePreset() { diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterBorder.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterBorder.java index 416af9417..70e7f2220 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterBorder.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterBorder.java @@ -63,7 +63,7 @@ public class ImageFilterBorder extends ImageFilter { } @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null || getParameters().getDrawableResource() == 0) { return bitmap; } @@ -73,7 +73,7 @@ public class ImageFilterBorder extends ImageFilter { } @Override - public Bitmap iconApply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null || getParameters().getDrawableResource() == 0) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterBwFilter.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterBwFilter.java index 3580dd693..c92ac012d 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterBwFilter.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterBwFilter.java @@ -42,7 +42,7 @@ public class ImageFilterBwFilter extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, int r, int g, int b); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterContrast.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterContrast.java index e2664269b..36da68b7b 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterContrast.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterContrast.java @@ -38,7 +38,7 @@ public class ImageFilterContrast extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float strength); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java index 4b65a0016..aa4cf22e6 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java @@ -55,7 +55,7 @@ public class ImageFilterCurves extends ImageFilter { } @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (!mParameters.getSpline(Spline.RGB).isOriginal()) { int[] rgbGradient = new int[256]; populateArray(rgbGradient, Spline.RGB); diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java index a53d2f3b3..906467344 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java @@ -47,7 +47,7 @@ public class ImageFilterDownsample extends SimpleImageFilter { } @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } @@ -79,7 +79,7 @@ public class ImageFilterDownsample extends SimpleImageFilter { } @Override - public Bitmap iconApply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); Bitmap ret = Bitmap.createScaledBitmap(bitmap, w / ICON_DOWNSAMPLE_FRACTION, h diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java index d2b5507a1..9d22f7a6f 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java @@ -32,6 +32,7 @@ import android.util.Log; import com.android.gallery3d.R; import com.android.gallery3d.filtershow.filters.FilterDrawRepresentation.StrokeData; import com.android.gallery3d.filtershow.imageshow.MasterImage; +import com.android.gallery3d.filtershow.presets.ImagePreset; import java.util.Vector; @@ -85,7 +86,7 @@ public class ImageFilterDraw extends ImageFilter { public static interface DrawStyle { public void setType(byte type); public void paint(FilterDrawRepresentation.StrokeData sd, Canvas canvas, Matrix toScrMatrix, - boolean highQuality); + int quality); } class SimpleDraw implements DrawStyle { @@ -98,7 +99,7 @@ public class ImageFilterDraw extends ImageFilter { @Override public void paint(FilterDrawRepresentation.StrokeData sd, Canvas canvas, Matrix toScrMatrix, - boolean highQuality) { + int quality) { if (sd == null) { return; } @@ -139,7 +140,7 @@ public class ImageFilterDraw extends ImageFilter { @Override public void paint(FilterDrawRepresentation.StrokeData sd, Canvas canvas, Matrix toScrMatrix, - boolean highQuality) { + int quality) { if (sd == null || sd.mPath == null) { return; } @@ -198,13 +199,13 @@ public class ImageFilterDraw extends ImageFilter { } void paint(FilterDrawRepresentation.StrokeData sd, Canvas canvas, Matrix toScrMatrix, - boolean highQuality) { - mDrawingsTypes[sd.mType].paint(sd, canvas, toScrMatrix, highQuality); + int quality) { + mDrawingsTypes[sd.mType].paint(sd, canvas, toScrMatrix, quality); } - public void drawData(Canvas canvas, Matrix originalRotateToScreen, boolean highQuality) { + public void drawData(Canvas canvas, Matrix originalRotateToScreen, int quality) { Paint paint = new Paint(); - if (highQuality) { + if (quality == ImagePreset.QUALITY_FINAL) { paint.setAntiAlias(true); } paint.setStyle(Style.STROKE); @@ -214,9 +215,9 @@ public class ImageFilterDraw extends ImageFilter { if (mParameters.getDrawing().isEmpty() && mParameters.getCurrentDrawing() == null) { return; } - if (highQuality) { + if (quality == ImagePreset.QUALITY_FINAL) { for (FilterDrawRepresentation.StrokeData strokeData : mParameters.getDrawing()) { - paint(strokeData, canvas, originalRotateToScreen, highQuality); + paint(strokeData, canvas, originalRotateToScreen, quality); } return; } @@ -237,7 +238,7 @@ public class ImageFilterDraw extends ImageFilter { StrokeData stroke = mParameters.getCurrentDrawing(); if (stroke != null) { - paint(stroke, canvas, originalRotateToScreen, highQuality); + paint(stroke, canvas, originalRotateToScreen, quality); } } @@ -247,27 +248,28 @@ public class ImageFilterDraw extends ImageFilter { int n = v.size(); for (int i = mCachedStrokes; i < n; i++) { - paint(v.get(i), drawCache, originalRotateToScreen, false); + paint(v.get(i), drawCache, originalRotateToScreen, ImagePreset.QUALITY_PREVIEW); } mCachedStrokes = n; } public void draw(Canvas canvas, Matrix originalRotateToScreen) { for (FilterDrawRepresentation.StrokeData strokeData : mParameters.getDrawing()) { - paint(strokeData, canvas, originalRotateToScreen, false); + paint(strokeData, canvas, originalRotateToScreen, ImagePreset.QUALITY_PREVIEW); } - mDrawingsTypes[mCurrentStyle].paint(null, canvas, originalRotateToScreen, false); + mDrawingsTypes[mCurrentStyle].paint( + null, canvas, originalRotateToScreen, ImagePreset.QUALITY_PREVIEW); } @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + 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); - drawData(new Canvas(bitmap), m, highQuality); + drawData(new Canvas(bitmap), m, quality); return bitmap; diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterEdge.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterEdge.java index 96839e4ab..55c709573 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterEdge.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterEdge.java @@ -38,7 +38,7 @@ public class ImageFilterEdge extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float p); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterExposure.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterExposure.java index e36f096ad..8bb35f853 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterExposure.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterExposure.java @@ -38,7 +38,7 @@ public class ImageFilterExposure extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float bright); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java index 0a3c8abd0..820ec3e51 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java @@ -40,7 +40,7 @@ public class ImageFilterFx extends ImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h,Bitmap fxBitmap, int fxw, int fxh); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null || getParameters().getFxBitmap() ==null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java index a778bee21..1380c528d 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java @@ -67,7 +67,7 @@ public class ImageFilterGeometry extends ImageFilter { Bitmap dst, int dstWidth, int dstHeight, float straightenAngle); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { // TODO: implement bilinear or bicubic here... for now, just use // canvas to do a simple implementation... // TODO: and be more memory efficient! (do it in native?) diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java index ed28e57b7..54bd068fc 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java @@ -44,7 +44,7 @@ public class ImageFilterHue extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float []matrix); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java index f28839744..f48bd047a 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java @@ -53,7 +53,7 @@ public class ImageFilterKMeans extends SimpleImageFilter { int swidth, int sheight, int p, int seed); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterNegative.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterNegative.java index 14307c37d..c0208765b 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterNegative.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterNegative.java @@ -23,7 +23,7 @@ public class ImageFilterNegative extends ImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); nativeApplyFilter(bitmap, w, h); diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java index 36c86d847..316a286e8 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java @@ -63,14 +63,14 @@ public class ImageFilterParametricBorder extends ImageFilter { } @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { Canvas canvas = new Canvas(bitmap); applyHelper(canvas, bitmap.getWidth(), bitmap.getHeight()); return bitmap; } @Override - public Bitmap iconApply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) { Canvas canvas = new Canvas(bitmap); applyHelper(canvas, bitmap.getWidth() * 4, bitmap.getHeight() * 4); return bitmap; diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java index f5c1e7ff3..c741a4887 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java @@ -37,7 +37,7 @@ public class ImageFilterRS extends ImageFilter { mOldBitmap = null; } - public void prepare(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public void prepare(Bitmap bitmap, float scaleFactor, int quality) { if (sOldBitmap == null || (bitmap.getWidth() != sOldBitmap.getWidth()) || (bitmap.getHeight() != sOldBitmap.getHeight())) { @@ -56,13 +56,13 @@ public class ImageFilterRS extends ImageFilter { } mInPixelsAllocation.copyFrom(bitmap); if (mOldBitmap != sOldBitmap) { - createFilter(mResources, scaleFactor, highQuality); + createFilter(mResources, scaleFactor, quality); mOldBitmap = sOldBitmap; } } public void createFilter(android.content.res.Resources res, - float scaleFactor, boolean highQuality) { + float scaleFactor, int quality) { // Stub } @@ -75,12 +75,12 @@ public class ImageFilterRS extends ImageFilter { } @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (bitmap == null) { return bitmap; } try { - prepare(bitmap, scaleFactor, highQuality); + prepare(bitmap, scaleFactor, quality); runFilter(); update(bitmap); } catch (android.renderscript.RSIllegalArgumentException e) { diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java index 177def7b7..a65a9631b 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java @@ -63,7 +63,7 @@ public class ImageFilterRedEye extends ImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, short[] matrix); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); short[] rect = new short[4]; diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterSaturated.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterSaturated.java index 747a03685..f6ef78138 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterSaturated.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterSaturated.java @@ -38,7 +38,7 @@ public class ImageFilterSaturated extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float saturation); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java index a2560b99e..b50b28e52 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java @@ -39,7 +39,7 @@ public class ImageFilterShadows extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float factor); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java index 92f9b1a6d..9c99d57d0 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java @@ -48,7 +48,7 @@ public class ImageFilterSharpen extends ImageFilterRS { @Override public void createFilter(android.content.res.Resources res, float scaleFactor, - boolean highQuality) { + int quality) { int w = mInPixelsAllocation.getType().getX(); int h = mInPixelsAllocation.getType().getY(); mScaleFactor = scaleFactor; diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterStraighten.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterStraighten.java index 3feec7bcc..92bde992d 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterStraighten.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterStraighten.java @@ -53,7 +53,7 @@ public class ImageFilterStraighten extends ImageFilter { } @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { // TODO: implement bilinear or bicubic here... for now, just use // canvas to do a simple implementation... // TODO: and be more memory efficient! (do it in native?) diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java index d8ec3900e..702cc664c 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java @@ -72,7 +72,7 @@ public class ImageFilterTinyPlanet extends SimpleImageFilter { float angle); @Override - public Bitmap apply(Bitmap bitmapIn, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmapIn, float scaleFactor, int quality) { int w = bitmapIn.getWidth(); int h = bitmapIn.getHeight(); int outputSize = (int) (w / 2f); diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterVibrance.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterVibrance.java index 385921168..ac20205f0 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterVibrance.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterVibrance.java @@ -38,7 +38,7 @@ public class ImageFilterVibrance extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float bright); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterVignette.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterVignette.java index 3aad6bd15..ac0fdee13 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterVignette.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterVignette.java @@ -42,7 +42,7 @@ public class ImageFilterVignette extends SimpleImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float strength); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { if (getParameters() == null) { return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterWBalance.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterWBalance.java index 28223b28d..e0bcfba56 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterWBalance.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterWBalance.java @@ -40,7 +40,7 @@ public class ImageFilterWBalance extends ImageFilter { native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, int locX, int locY); @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); nativeApplyFilter(bitmap, w, h, -1, -1); diff --git a/src/com/android/gallery3d/filtershow/filters/SimpleImageFilter.java b/src/com/android/gallery3d/filtershow/filters/SimpleImageFilter.java index d494913cf..922a16a0f 100644 --- a/src/com/android/gallery3d/filtershow/filters/SimpleImageFilter.java +++ b/src/com/android/gallery3d/filtershow/filters/SimpleImageFilter.java @@ -38,9 +38,9 @@ public class SimpleImageFilter extends ImageFilter { } @Override - public Bitmap iconApply(Bitmap bitmap, float scaleFactor, boolean highQuality) { + public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) { FilterRepresentation representation = getDefaultRepresentation(); this.useRepresentation(representation); - return apply(bitmap, scaleFactor, highQuality); + return apply(bitmap, scaleFactor, quality); } } diff --git a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java index b53284061..a3645d6f5 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java +++ b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java @@ -86,12 +86,12 @@ public class GeometryMetadata { return false; } - public Bitmap apply(Bitmap original, float scaleFactor, boolean highQuality) { + public Bitmap apply(Bitmap original, float scaleFactor, int quality) { if (!hasModifications()) { return original; } mImageFilter.setGeometryMetadata(this); - Bitmap m = mImageFilter.apply(original, scaleFactor, highQuality); + Bitmap m = mImageFilter.apply(original, scaleFactor, quality); return m; } diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java b/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java index 2dc0221e4..0cd229968 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java @@ -5,8 +5,6 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; -import android.graphics.Rect; -import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.Log; @@ -91,7 +89,6 @@ public class ImageDraw extends ImageShow { ImageFilterDraw filter = (ImageFilterDraw) getCurrentFilter(); if (event.getAction() == MotionEvent.ACTION_DOWN) { - mTmpPoint[0] = event.getX(); mTmpPoint[1] = event.getY(); mToOrig.mapPoints(mTmpPoint); @@ -116,8 +113,6 @@ public class ImageDraw extends ImageShow { mTmpPoint[1] = event.getY(); mToOrig.mapPoints(mTmpPoint); mFRep.endSection(mTmpPoint[0], mTmpPoint[1]); - this.resetImageCaches(this); - } mEditorDraw.commitLocalRepresentation(); invalidate(); diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index c7d14e80b..adea9deb3 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -35,7 +35,10 @@ public class ImagePreset { private FilterRepresentation mBorder = null; private float mScaleFactor = 1.0f; - private boolean mIsHighQuality = false; + public static final int QUALITY_ICON = 0; + public static final int QUALITY_PREVIEW = 1; + public static final int QUALITY_FINAL = 2; + private int mQuality = QUALITY_PREVIEW; private ImageLoader mImageLoader = null; private Vector mFilters = new Vector(); @@ -380,14 +383,14 @@ public class ImagePreset { public Bitmap applyGeometry(Bitmap bitmap) { // Apply any transform -- 90 rotate, flip, straighten, crop // Returns a new bitmap. - return mGeoData.apply(bitmap, mScaleFactor, mIsHighQuality); + return mGeoData.apply(bitmap, mScaleFactor, mQuality); } public Bitmap applyBorder(Bitmap bitmap) { if (mBorder != null && mDoApplyGeometry) { ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mBorder); filter.useRepresentation(mBorder); - bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality); + bitmap = filter.apply(bitmap, mScaleFactor, mQuality); } return bitmap; } @@ -408,7 +411,7 @@ public class ImagePreset { } ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(representation); filter.useRepresentation(representation); - bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality); + bitmap = filter.apply(bitmap, mScaleFactor, mQuality); } } @@ -429,12 +432,12 @@ public class ImagePreset { return mScaleFactor; } - public boolean isHighQuality() { - return mIsHighQuality; + public int getQuality() { + return mQuality; } - public void setIsHighQuality(boolean value) { - mIsHighQuality = value; + public void setQuality(int value) { + mQuality = value; } public void setScaleFactor(float value) { -- cgit v1.2.3