国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 裁剪人臉類的實例代碼

2019-12-12 00:37:14
字體:
來源:轉載
供稿:網友

人臉裁剪類

public final class FaceCj {  private static BitmapFactory.Options BitmapFactoryOptionsbfo;  private static ByteArrayOutputStream out;  private static byte[] data;  private static FaceDetector.Face[] myFace;  private static FaceDetector myFaceDetect;  private static int tx = 0;  private static int ty = 0;  private static int bx = 0;  private static int by = 0;  private static int width = 0;  private static int height = 0;  private static float wuchax = 0;  private static float wuchay = 0;  private static FaceDetector.Face face;  private static PointF myMidPoint;  private static float myEyesDistance;  private static List<String> facePaths;  private static String facePath;  public static Bitmap cutFace(Bitmap bitmap, Context context) {    facePaths = null;    BitmapFactoryOptionsbfo = new BitmapFactory.Options();    BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565; // 構造位圖生成的參數,必須為565。類名+enum    out = new ByteArrayOutputStream();    bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out);    data = out.toByteArray();    bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,        BitmapFactoryOptionsbfo);    try {      out.flush();      out.close();    } catch (IOException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }    width = bitmap.getWidth();    height = bitmap.getHeight();    myFace = new FaceDetector.Face[5]; // 分配人臉數組空間    myFaceDetect = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), 5);    int numberOfFaceDetected = myFaceDetect.findFaces(bitmap, myFace);    if (numberOfFaceDetected <= 0) {// FaceDetector構造實例并解析人臉      bitmap.recycle();      return null;    }    facePaths = new ArrayList<String>();    for (int i = 0; i < numberOfFaceDetected; i++) {      face = myFace[i];      myMidPoint = new PointF();      face.getMidPoint(myMidPoint);      myEyesDistance = face.eyesDistance();  //得到人臉中心點和眼間距離參數,并對每個人臉進行畫框      wuchax = myEyesDistance / 2 + myEyesDistance;      wuchay = myEyesDistance * 2 / 3 + myEyesDistance;      if (myMidPoint.x - wuchax < 0) {//判斷左邊是否出界        tx = 0;      } else {        tx = (int) (myMidPoint.x - wuchax);      }      if (myMidPoint.x + wuchax > width) {//判斷右邊是否出界        bx = width;      } else {        bx = (int) (myMidPoint.x + wuchax);      }      if (myMidPoint.y - wuchay < 0) {//判斷上邊是否出界        ty = 0;      } else {        ty = (int) (myMidPoint.y - wuchay);      }      if (myMidPoint.y + wuchay > height) {//判斷下邊是否出界        by = height;      } else {        by = (int) (myMidPoint.y + wuchay);      }      try {        return Bitmap.createBitmap(bitmap, tx, ty, bx - tx, by - ty);//這里可以自行調整裁剪寬高      } catch (Exception e) {        e.printStackTrace();      }    }    bitmap.recycle();    return bitmap;  }}

總結

以上所述是小編給大家介紹的Android 裁剪人臉的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潞城市| 张家界市| 南平市| 固始县| 汶川县| 孙吴县| 大厂| 白河县| 吉安县| 潜山县| 峡江县| 寻乌县| 法库县| 香河县| 陵水| 冕宁县| 南阳市| 辽中县| 含山县| 南皮县| 江油市| 抚顺市| 蓬莱市| 建始县| 新宾| 颍上县| 潞城市| 大洼县| 海宁市| 封开县| 双峰县| 巴南区| 芒康县| 保康县| 太和县| 望城县| 永仁县| 徐水县| 屏南县| 泉州市| 普陀区|