package com.alfeye.a1camera; import android.graphics.Point; import android.graphics.Rect; import android.hardware.Camera; import java.util.ArrayList; import java.util.List; /** * Camera1 人脸补光 *
* Created by DELL on 2019/4/9.
*/
public class FaceBrightnessAdjustUtil {
//默认 补光阈值
private int threshold = 100;
private Rect mRect;
private boolean enabled = true;
public FaceBrightnessAdjustUtil() {
}
/**
* 设置 人脸补光 位移阈值
*
* @param threshold 补光区域位移 阈值。大于此阈值才进行补光
*/
public void setFaceBrightnessAdjustThreshold(int threshold) {
this.threshold = threshold;
}
/**
* 使能 人脸补光
*
* @param enabled
*/
public void setEnFaceBrightnessAdjust(boolean enabled) {
this.enabled = enabled;
}
/**
* 执行 自动补光
*
* @param camera Camera1摄像头
* @param previewWidth 预览宽度
* @param previewHeight 预览高度
* @param rect 补光区域
* @param rotate270 旋转补光区域 (旋转为竖屏坐标)
*/
public void runAutoFaceBrightnessAdjust(Camera camera, int previewWidth, int previewHeight, Rect rect, boolean rotate270) {
if (camera != null && enabled) {
try {
Camera.Parameters parameters = camera.getParameters();
List
* rotate the coordinate of rectangle with 270 degree
*
* @param rect 需要旋转的原始矩形框
* the origin rectangle which need to rotate
* @param width 图片的宽度
* width of image
* @param height 图片的高度
* height of image
* @return 旋转之后的矩形框
* rotated rectangle
*/
private Rect rotateDeg270(Rect rect, int width, int height) {
Rect newRect = new Rect();
int left = rect.left;
newRect.left = rect.top;
newRect.top = width - rect.right;
newRect.right = rect.bottom;
newRect.bottom = width - left;
return newRect;
}
}