저는 onPreviewFrame()에서 얻은 NV21 바이트 []를 변환하려고합니다. 나는 다양한 솔루션을 찾기 위해 포럼과 구글을 수색했다. 나는 RenderScripts와 다른 코드 예제를 시도했다. 그들 중 일부는 나에게 노란색 색조로 이미지를주고, 일부는 빨간색과 파란색으로 뒤집힌 이미지를 제공합니다 (코드에서 뒤집어서 노란색 색조가 나타남). 일부는 이미지 전체에 이상한 컬러 기능을 제공합니다. 거의 네거티브와 같음), 일부는 저에게 그레이 스케일 이미지를 주며, 어떤 이미지는 어둡기 때문에 아무 것도 만들 수 없습니다.Android에서 Bitmap과 NV21, 매우 어두운 이미지, 회색 음영 또는 노란색 색조?
내가 질문을 입력 한 이래로, 나는 우리가 this post으로 시작할 것이므로 나는 방에서 바보가되어야한다는 것을 알았다. 이 특별한 해결책은 나에게 아주 어두운 이미지를 주지만, 나는 아직 코멘트 할 수 없을만큼 충분히 멋지지 않다. 누구나이 솔루션을 사용해 보았거나 원래 NV21 형식과 동일한 품질의 이미지를 생성 한 사람이 있습니까?
올바른 ARGB 바이트 [] 또는 유효한 비트 맵이 필요하며 둘 중 하나를 처리하도록 프로젝트를 수정할 수 있습니다. 그냥 참조를 위해 나는이 (이들 중 정말 탄소 복사하고 몇 가지 다른를) 시도 :
One solution I tried
Another solution I tried
카메라 버퍼가 "NV21"이 아닌 경우 "YUV_420_888"및 "YV12"로 재생할 수도 있습니다. –
나는 이것을 시험해보고 있는데, 나는 전에 보지 못했던 오류를 얻는다 : "E/RenderScript : YuvToRGB가 데이터없이 실행되고, 각 미리보기 프레임을 건너 뛰고". 나는 "yuvPreviewAlloc.copyFrom (data);"을 추가하려고 시도했다. 그냥 그런 것이 아니라는 것을 확신하기 위해서입니다. 누구나 이걸 보니? –
이 오류 메시지는 일반적으로 yuvPreviewAlloc 할당이 카메라 API에서 데이터를 가져 오지 않았 음을 의미합니다. rsPreviewSurface가 카메라 출력 화면으로 올바르게 구성되어 있는지 다시 한 번 확인하십시오. 2. ioReceive가 호출 된 경우. 3. USAGE_IO_INPUT이 RenderScript 지원 lib (import android.support.v8.renderscript)와 작동하지 않기 때문에 "import android.renderscript. *"를 사용하고 있는지 확인하십시오. 또한 코드에 몇 가지 주석을 추가하여 설정에 대한 몇 가지 코드 참조를 알려줍니다. –