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

首頁(yè) > 系統(tǒng) > Android > 正文

Android 裁剪人臉類的實(shí)例代碼

2019-10-21 21:43:09
字體:
供稿:網(wǎng)友

人臉裁剪類

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; // 構(gòu)造位圖生成的參數(shù),必須為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]; // 分配人臉數(shù)組空間    myFaceDetect = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), 5);    int numberOfFaceDetected = myFaceDetect.findFaces(bitmap, myFace);    if (numberOfFaceDetected <= 0) {// FaceDetector構(gòu)造實(shí)例并解析人臉      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();  //得到人臉中心點(diǎn)和眼間距離參數(shù),并對(duì)每個(gè)人臉進(jìn)行畫框      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);//這里可以自行調(diào)整裁剪寬高      } catch (Exception e) {        e.printStackTrace();      }    }    bitmap.recycle();    return bitmap;  }}

總結(jié)

以上所述是小編給大家介紹的Android 裁剪人臉的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VEVB武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江陵县| 顺义区| 松滋市| 申扎县| 板桥市| 蒙自县| 海兴县| 石台县| 隆安县| 右玉县| 黔江区| 台州市| 池州市| 翁源县| 获嘉县| 昂仁县| 酒泉市| 信阳市| 丰城市| 邯郸市| 大荔县| 朝阳县| 左贡县| 紫金县| 溧水县| 贵州省| 金湖县| 江都市| 昌邑市| 资中县| 麦盖提县| 仲巴县| 富源县| 清远市| 郓城县| 青岛市| 广汉市| 新干县| 亚东县| 大连市| 平度市|