diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/ImageRedEye.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/ImageRedEye.java | 116 |
1 files changed, 46 insertions, 70 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageRedEye.java b/src/com/android/gallery3d/filtershow/imageshow/ImageRedEye.java index ba3dcdd1d..c3ff5e151 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageRedEye.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageRedEye.java @@ -1,3 +1,18 @@ +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.android.gallery3d.filtershow.imageshow; @@ -8,30 +23,14 @@ import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.RectF; -import android.util.AttributeSet; -import android.util.Log; import android.view.MotionEvent; -import com.android.gallery3d.filtershow.editors.EditorRedEye; -import com.android.gallery3d.filtershow.filters.FilterRedEyeRepresentation; -import com.android.gallery3d.filtershow.filters.ImageFilterRedEye; +import com.android.gallery3d.filtershow.filters.FilterPoint; import com.android.gallery3d.filtershow.filters.RedEyeCandidate; -public class ImageRedEye extends ImageShow { - +public class ImageRedEye extends ImagePoint { private static final String LOGTAG = "ImageRedEyes"; private RectF mCurrentRect = null; - private EditorRedEye mEditorRedEye; - private FilterRedEyeRepresentation mRedEyeRep; - private static float mTouchPadding = 80; - - public static void setTouchPadding(float padding) { - mTouchPadding = padding; - } - - public ImageRedEye(Context context, AttributeSet attrs) { - super(context, attrs); - } public ImageRedEye(Context context) { super(context); @@ -39,21 +38,12 @@ public class ImageRedEye extends ImageShow { @Override public void resetParameter() { - ImageFilterRedEye filter = (ImageFilterRedEye) getCurrentFilter(); - if (filter != null) { - filter.clear(); - } - mCurrentRect = null; + super.resetParameter(); invalidate(); } @Override - public void updateImage() { - super.updateImage(); - invalidate(); - } - @Override public boolean onTouchEvent(MotionEvent event) { super.onTouchEvent(event); float ex = event.getX(); @@ -112,49 +102,35 @@ public class ImageRedEye extends ImageShow { RectF drawRect = new RectF(mCurrentRect); canvas.drawRect(drawRect, paint); } - - GeometryMetadata geo = getImagePreset().mGeoData; - Matrix originalToScreen = geo.getOriginalToScreen(false, - mImageLoader.getOriginalBounds().width(), - mImageLoader.getOriginalBounds().height(), getWidth(), getHeight()); - Matrix originalRotateToScreen = geo.getOriginalToScreen(true, - mImageLoader.getOriginalBounds().width(), - mImageLoader.getOriginalBounds().height(), getWidth(), getHeight()); - if (mRedEyeRep != null) { - for (RedEyeCandidate candidate : mRedEyeRep.getCandidates()) { - RectF rect = candidate.getRect(); - RectF drawRect = new RectF(); - originalToScreen.mapRect(drawRect, rect); - RectF fullRect = new RectF(); - originalRotateToScreen.mapRect(fullRect, rect); - paint.setColor(Color.BLUE); - canvas.drawRect(fullRect, paint); - canvas.drawLine(fullRect.centerX(), fullRect.top, - fullRect.centerX(), fullRect.bottom, paint); - canvas.drawLine(fullRect.left, fullRect.centerY(), - fullRect.right, fullRect.centerY(), paint); - paint.setColor(Color.GREEN); - float dw = drawRect.width(); - float dh = drawRect.height(); - float dx = fullRect.centerX() - dw / 2; - float dy = fullRect.centerY() - dh / 2; - drawRect.set(dx, dy, dx + dw, dy + dh); - canvas.drawRect(drawRect, paint); - canvas.drawLine(drawRect.centerX(), drawRect.top, - drawRect.centerX(), drawRect.bottom, paint); - canvas.drawLine(drawRect.left, drawRect.centerY(), - drawRect.right, drawRect.centerY(), paint); - canvas.drawCircle(drawRect.centerX(), drawRect.centerY(), - mTouchPadding, paint); - } - } } - public void setEditor(EditorRedEye editorRedEye) { - mEditorRedEye = editorRedEye; - } - - public void setRepresentation(FilterRedEyeRepresentation redEyeRep) { - mRedEyeRep = redEyeRep; + @Override + protected void drawPoint(FilterPoint point, Canvas canvas, Matrix originalToScreen, + Matrix originalRotateToScreen, Paint paint) { + RedEyeCandidate candidate = (RedEyeCandidate) point; + RectF rect = candidate.getRect(); + RectF drawRect = new RectF(); + originalToScreen.mapRect(drawRect, rect); + RectF fullRect = new RectF(); + originalRotateToScreen.mapRect(fullRect, rect); + paint.setColor(Color.BLUE); + canvas.drawRect(fullRect, paint); + canvas.drawLine(fullRect.centerX(), fullRect.top, + fullRect.centerX(), fullRect.bottom, paint); + canvas.drawLine(fullRect.left, fullRect.centerY(), + fullRect.right, fullRect.centerY(), paint); + paint.setColor(Color.GREEN); + float dw = drawRect.width(); + float dh = drawRect.height(); + float dx = fullRect.centerX() - dw / 2; + float dy = fullRect.centerY() - dh / 2; + drawRect.set(dx, dy, dx + dw, dy + dh); + canvas.drawRect(drawRect, paint); + canvas.drawLine(drawRect.centerX(), drawRect.top, + drawRect.centerX(), drawRect.bottom, paint); + canvas.drawLine(drawRect.left, drawRect.centerY(), + drawRect.right, drawRect.centerY(), paint); + canvas.drawCircle(drawRect.centerX(), drawRect.centerY(), + mTouchPadding, paint); } } |