2016-08-15 5 views
1

으로 변환합니다. 새 Camera2 API를 테스트하고 있으며 카메라 미리보기를 YUV_420_888 형식으로 캡처 할 수 있습니다. 다음으로해야 할 일은이 데이터를 byte[] 매개 변수를 허용하는 이미지 처리 라이브러리에 공급하는 것입니다.YUV_420_888을 바이트 배열

나는 converting YUV_420_888 to RGB 등의 예를 발견했습니다,하지만, 난 여전히 실험 후, 엄청난 응용 프로그램을 둔화되는, ByteArrayOutputStream 통해 byte[]에 결과 비트 맵 변환해야합니다.

내 질문은 어떻게 YUV_420_888byte[] 개로 효율적으로 변환합니까?

답변

0

이미지 처리 라이브러리에서 원하는 byte [] 배열의 실제 형식은 무엇입니까? RGB입니까? YUV 평면? 준 반성?

RGB로 가정하면 YUV_420_888을 RGB로 변환하는 것을 참조하면 할당에서 비트 맵을 만들지 않도록 해당 예제를 수정할 수 있습니다. Allocation.copyTo을 Bitmap 대신 byte []로 사용하면됩니다.

+0

지연에 사과드립니다. 이 샘플 코드를 제공 해줄 수 있습니까? 나는 출력의 길이가 무엇인지 모르겠다. byte []', 그리고 렌더링 스크립트의 결과를 저장하기 위해'Allocation' 출력을 어떻게 초기화해야 하는가? – tropicalfish

+0

copyTo에 대한 문서에서 알 수 있듯이 byte []는 적어도 Allocation.getBytesSize (https://developer.android.com/reference/android/renderscript/Allocation.html#getBytesSize()) 크기 여야합니다. 참조하는 예제는 이미 출력 할당 설정과 관련되어 있으므로 변경이 필요하지 않습니다. 효율성을 더 높이려면 Allocation.getSurface (https://developer.android.com/reference/android/renderscript/Allocation.html#getSurface())를 사용하여 입력 할당을 camera2 API에 직접 연결할 수 있습니다. 다음 예제를 참조하십시오. https://github.com/googlesamples/android-HdrViewfinder –