私は私が過去に働いていたプロジェクトで、これに似た何かを達成していないが、もはやプロジェクトへのアクセス権を持っています。
キャプチャメソッドを呼び出すときは、顔の位置への参照を保存する必要があります。
は写真を撮ると、保存する前にファイルが返されたビットマップの上にマスクのリソースを追加します。あなたはどちらかのように、ビジョンAPIはカメラの上にあなたを与えるどのくらいの制御
イムわかりません。
または
保存したファイルをロードし、その上にマスクのリソースを追加します。
私は後でいくつかのコードが役立つ場合はそれを見て回ります。
編集回しビットマップ
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
ExifInterface exif = new ExifInterface("/storage/emulated/0/Pic.jpg");
String exifOrientation = exif.getAttribute(ExifInterface.TAG_ORIENTATION);
int i = Integer.parseInt(exifOrientation);
bitmap = rotateImage(bitmap, i);
//
private Bitmap rotateImage(Bitmap bm, int i) {
Matrix matrix = new Matrix();
switch (i) {
case ExifInterface.ORIENTATION_NORMAL:
return bm;
case ExifInterface.ORIENTATION_FLIP_HORIZONTAL:
matrix.setScale(-1, 1);
break;
case ExifInterface.ORIENTATION_ROTATE_180:
matrix.setRotate(180);
break;
case ExifInterface.ORIENTATION_FLIP_VERTICAL:
matrix.setRotate(180);
matrix.postScale(-1, 1);
break;
case ExifInterface.ORIENTATION_TRANSPOSE:
matrix.setRotate(90);
matrix.postScale(-1, 1);
break;
case ExifInterface.ORIENTATION_ROTATE_90:
matrix.setRotate(90);
break;
case ExifInterface.ORIENTATION_TRANSVERSE:
matrix.setRotate(-90);
matrix.postScale(-1, 1);
break;
case ExifInterface.ORIENTATION_ROTATE_270:
matrix.setRotate(-90);
break;
default:
return bm;
}
try {
Bitmap bmRotated = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
bm.recycle();
return bmRotated;
} catch (OutOfMemoryError e) {
e.printStackTrace();
return null;
}
}
私も同じことをしようとしています。あなたがそれを達成したら教えてください。 – SANAT