summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui
diff options
context:
space:
mode:
authorzhuw <zhuw@codeaurora.org>2018-03-05 20:14:29 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2018-03-08 18:17:49 -0800
commit7e15dace0690c0465adabf0d2db909ef44f0c322 (patch)
treee2ff0fdd7b1201044186144fc28eaa7152784c99 /src/com/android/camera/ui
parenta06814aafd8a3dc6336ef24df9a12fcb6d585500 (diff)
downloadandroid_packages_apps_Snap-7e15dace0690c0465adabf0d2db909ef44f0c322.tar.gz
android_packages_apps_Snap-7e15dace0690c0465adabf0d2db909ef44f0c322.tar.bz2
android_packages_apps_Snap-7e15dace0690c0465adabf0d2db909ef44f0c322.zip
Fix FD ROI mismatch issue
change the mapping progress Change-Id: I8a9c57a50adcaebf6b5ffdcabad1d058262b2e7a
Diffstat (limited to 'src/com/android/camera/ui')
-rw-r--r--src/com/android/camera/ui/Camera2FaceView.java26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/com/android/camera/ui/Camera2FaceView.java b/src/com/android/camera/ui/Camera2FaceView.java
index 28a67be4d..f815a7c20 100644
--- a/src/com/android/camera/ui/Camera2FaceView.java
+++ b/src/com/android/camera/ui/Camera2FaceView.java
@@ -52,6 +52,7 @@ public class Camera2FaceView extends FaceView {
private Face[] mPendingFaces;
private ExtendedFace[] mPendingExFaces;
private Rect mCameraBound;
+ private Rect mOriginalCameraBound;
private float mZoom = 1.0f;
private Handler mHandler = new Handler() {
@Override
@@ -75,6 +76,10 @@ public class Camera2FaceView extends FaceView {
mCameraBound = cameraBound;
}
+ public void setOriginalCameraBound(Rect originalCameraBound) {
+ mOriginalCameraBound = originalCameraBound;
+ }
+
public void setZoom(float zoom) {
mZoom = zoom;
}
@@ -122,6 +127,13 @@ public class Camera2FaceView extends FaceView {
rw = rh;
rh = temp;
}
+ if (rw * mCameraBound.width() != mCameraBound.height() * rh) {
+ if (rw == rh || (rh * 288 == rw * 352) || (rh * 480 == rw * 800)) {
+ rh = rw * mCameraBound.width() / mCameraBound.height();
+ } else {
+ rw = rh * mCameraBound.height() / mCameraBound.width();
+ }
+ }
CameraUtil.prepareMatrix(mMatrix, mMirror, mDisplayOrientation, rw, rh);
// mMatrix assumes that the face coordinates are from -1000 to 1000.
@@ -136,8 +148,10 @@ public class Camera2FaceView extends FaceView {
bsgcTranslateMatrix.postScale(2000f / mCameraBound.width(),
2000f / mCameraBound.height());
- int dx = (getWidth() - rw) / 2;
- int dy = (getHeight() - rh) / 2;
+ int dx = (getWidth() - mUncroppedWidth) / 2;
+ dx -= (rw - mUncroppedWidth) / 2;
+ int dy = (getHeight() - mUncroppedHeight) / 2;
+ dy -= (rh - mUncroppedHeight) / 2;
// Focus indicator is directional. Rotate the matrix and the canvas
// so it looks correctly in all orientations.
@@ -153,8 +167,14 @@ public class Camera2FaceView extends FaceView {
for (int i = 0; i < mFaces.length; i++) {
if (mFaces[i].getScore() < 50) continue;
Rect faceBound = mFaces[i].getBounds();
- faceBound.offset(-mCameraBound.left, -mCameraBound.top);
+ faceBound.offset(-mOriginalCameraBound.left, -mOriginalCameraBound.top);
mRect.set(faceBound);
+ if (mZoom != 1.0f) {
+ mRect.left = mRect.left - mCameraBound.left;
+ mRect.right = mRect.right - mCameraBound.left;
+ mRect.top = mRect.top - mCameraBound.top;
+ mRect.bottom = mRect.bottom - mCameraBound.top;
+ }
translateMatrix.mapRect(mRect);
if (LOGV) CameraUtil.dumpRect(mRect, "Original rect");
mMatrix.mapRect(mRect);