Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
//License from project: Open Source License 

import android.graphics.Matrix;

import android.graphics.Rect;
import android.graphics.RectF;

public class Main {
    /** Convert coordination of face rect to screen rect that will be draw on canvas<br>
     * */
    public static Rect convertFaceRect(Rect faceRect, boolean frontCamera, float displayOrientation,
            float viewWidth, float viewHeight) {

        RectF tmp = new RectF(faceRect);
        Matrix matrix = createConvertMatrix(frontCamera, displayOrientation, viewWidth, viewHeight);
        matrix.mapRect(tmp);
        return new Rect((int) tmp.left, (int) tmp.top, (int) tmp.right, (int) tmp.bottom);
    }

    /** create a coordination convert matrix
     * <br>
     * See also {@link android.hardware.Camera.Face#rect}
     * */
    private static Matrix createConvertMatrix(boolean frontCamera, float displayOrientation, float viewWidth,
            float viewHeight) {
        Matrix matrix = new Matrix();
        // Need mirror for front camera.
        boolean mirror = frontCamera;
        matrix.setScale(mirror ? -1 : 1, 1);
        // This is the value for android.hardware.Camera.setDisplayOrientation.
        matrix.postRotate(displayOrientation);
        // Camera driver coordinates range from (-1000, -1000) to (1000, 1000).
        // UI coordinates range from (0, 0) to (width, height).
        matrix.postScale(viewWidth / 2000f, viewHeight / 2000f);
        matrix.postTranslate(viewWidth / 2f, viewHeight / 2f);
        return matrix;
    }
}