diff options
author | John Hoford <hoford@google.com> | 2013-02-14 23:40:25 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-02-14 23:40:25 +0000 |
commit | c551fcd76cbbf0611f365bbe2b86c87c6226b348 (patch) | |
tree | ecb0a9ff8b94850c2506799c319ab56706d8287d /src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java | |
parent | ec2cebe4912bbb1a040b0bd52b250528671ef73d (diff) | |
parent | 7847563eaa8e039cd196a695485c322d81b1967e (diff) | |
download | android_packages_apps_Snap-c551fcd76cbbf0611f365bbe2b86c87c6226b348.tar.gz android_packages_apps_Snap-c551fcd76cbbf0611f365bbe2b86c87c6226b348.tar.bz2 android_packages_apps_Snap-c551fcd76cbbf0611f365bbe2b86c87c6226b348.zip |
Merge "refactor to support many filter based on RedEye" into gb-ub-photos-bryce
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java | 66 |
1 files changed, 12 insertions, 54 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java index 42587c06f..511f9e90f 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 The Android Open Source Project + * Copyright (C) 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,14 +17,8 @@ package com.android.gallery3d.filtershow.filters; import android.graphics.Bitmap; -import android.graphics.Canvas; import android.graphics.Matrix; -import android.graphics.Paint; -import android.graphics.Rect; import android.graphics.RectF; -import android.util.Log; - -import com.android.gallery3d.filtershow.imageshow.GeometryMetadata; import java.util.Vector; @@ -42,23 +36,14 @@ public class ImageFilterRedEye extends ImageFilter { } public boolean isNil() { - if (mParameters.getCandidates() != null && mParameters.getCandidates().size() > 0) { - return false; - } - return true; + return mParameters.isNil(); } - public Vector<RedEyeCandidate> getCandidates() { - if (!mParameters.hasCandidates()) { - mParameters.setCandidates(new Vector<RedEyeCandidate>()); - } + public Vector<FilterPoint> getCandidates() { return mParameters.getCandidates(); } public void clear() { - if (!mParameters.hasCandidates()) { - mParameters.setCandidates(new Vector<RedEyeCandidate>()); - } mParameters.clearCandidates(); } @@ -75,46 +60,19 @@ public class ImageFilterRedEye extends ImageFilter { int w = bitmap.getWidth(); int h = bitmap.getHeight(); short[] rect = new short[4]; + int size = mParameters.getNumberOfCandidates(); + Matrix originalToScreen = getOriginalToScreenMatrix(w, h); for (int i = 0; i < size; i++) { - RectF r = new RectF(mParameters.getCandidate(i).mRect); - GeometryMetadata geo = getImagePreset().mGeoData; - Matrix originalToScreen = geo.getOriginalToScreen(true, - getImagePreset().getImageLoader().getOriginalBounds().width(), - getImagePreset().getImageLoader().getOriginalBounds().height(), - w, h); + RectF r = new RectF(((RedEyeCandidate) (mParameters.getCandidate(i))).mRect); originalToScreen.mapRect(r); - if (r.left < 0) { - r.left = 0; - } - if (r.left > w) { - r.left = w; - } - if (r.top < 0) { - r.top = 0; + if (r.intersect(0, 0, w, h)) { + rect[0] = (short) r.left; + rect[1] = (short) r.top; + rect[2] = (short) r.width(); + rect[3] = (short) r.height(); + nativeApplyFilter(bitmap, w, h, rect); } - if (r.top > h) { - r.top = h; - } - if (r.right < 0) { - r.right = 0; - } - if (r.right > w) { - r.right = w; - } - if (r.bottom < 0) { - r.bottom = 0; - } - if (r.bottom > h) { - r.bottom = h; - } - - rect[0] = (short) r.left; - rect[1] = (short) r.top; - rect[2] = (short) r.width(); - rect[3] = (short) r.height(); - - nativeApplyFilter(bitmap, w, h, rect); } return bitmap; } |