민프
[Android][CameraX - 2] Camera를 이용해서 얼굴을 캡쳐해보자! 본문
저번 포스트에서는 Camera Preview를 구현했었고
이번에는 캡쳐를 해보자!!
구글 문서에 나와있는대로
ImageCapture imageCapture =
new ImageCapture.Builder()
.setTargetRotation(view.getDisplay().getRotation())
.build();
cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, imageCapture, imageAnalysis, preview);
ImageCapture 클래스는 기본적인 사진 촬영을 위해 설계 되었고,
takePicture() 함수를 제공해서 저장까지 할 수 있다.
초점 및 노출 영역은 PreView를 통해 제어할 수 있다.
사진 캡처를 지연 시간을 기준으로 최적화하려면 ImageCapture.CaptureMode를 CAPTURE_MODE_MINIMIZE_LATENCY로 설정합니다. 화질을 최적화하려면 CAPTURE_MODE_MAXIMIZE_QUALITY로 설정합니다.
이제 캡쳐 버튼을 만들고
그 캡쳐 버튼을 눌렀을때 실행되는 코드를 보자
ImageCapture.OutputFileOptions outputFileOptions =
new ImageCapture.OutputFileOptions.Builder(file).build();
imageCapture.takePicture(outputFileOptions,ContextCompat.getMainExecutor(CameraActivity.this),
new ImageCapture.OnImageSavedCallback() {
@Override
public void onImageSaved(ImageCapture.OutputFileResults outputFileResults) {
// insert your code here.
Log.d(TAG+ " onImageSavedgetSavedUri", String.valueOf(outputFileResults.getSavedUri()));
Toast.makeText(getApplicationContext(), "찍혔어요",Toast.LENGTH_LONG).show();
}
@Override
public void onError(ImageCaptureException error) {
// insert your code here.
Log.d(" Camerror", String.valueOf(error));
Toast.makeText(getApplicationContext(), "에러났어요",Toast.LENGTH_LONG).show();
}
}
);
}
imageCapture 후에 File 클래스를 만들어줘서 넣어주면
캡쳐 버튼을 눌렀을때 File클래스에 정의할 때 정의해준 파일 경로에 저장이 되게 된다.
밑 사진 처럼 캡쳐가 잘 된것을 확인할 수 있다.
이제 카메라 전 / 후 전환이 되게 해보자!
----------참고----------
https://developer.android.com/training/camerax/take-photo
https://developer.android.com/reference/androidx/camera/core/ImageCapture
'[Android]' 카테고리의 다른 글
[Android][Kotlin] 카카오 로그인 구현해보기! (API 이용)(Feat.KOE004) (0) | 2021.09.06 |
---|---|
[Android][API - TedImagePicker ] 카메라 / 갤러리 라이브러리 (2) | 2021.07.29 |
[Android][CameraX - 1] 얼굴을 비춰줄 Camera PreView를 구현해보자!! (0) | 2021.07.26 |
[Android][ARcore - 2] 초기설정, GooglePlay ARCore 지원 여부 확인 (0) | 2021.07.24 |
[Android][ARcore - 1] ARcore 예제를 해보자!! (0) | 2021.07.24 |
Comments