문제

내가 읽기 이 튜토리얼 에 점점에서 픽셀 데이터를이 있습니다.

는 동안 나는 아무 문제가 실행 및 이 코드를 사용하여,내가 가져가야 할 필요가있의 출력 데이터를 카메라(에서 오는 BGRA)로 변환하 ARGB 그래서 나는 그것을 이용할 수 있습니다 외부 라이브러리입니다.어떻게 해야 하나요?

도움이 되었습니까?

해결책

에 있는 경우 iOS5.0 사용할 수 있습니다 vImage 에서 가속화 프레임워크를 할 네온에 최적화된 색상 구성 요소 스왑 다음과 같은 코드를 사용하여 다음과 같은(에서 그려진 애플의 Webcore 에 소스 코드):

vImage_Buffer src;
src.height = height;
src.width = width;
src.rowBytes = srcBytesPerRow;
src.data = srcRows;

vImage_Buffer dest;
dest.height = height;
dest.width = width;
dest.rowBytes = destBytesPerRow;
dest.data = destRows;

// Swap pixel channels from BGRA to RGBA.
const uint8_t map[4] = { 2, 1, 0, 3 };
vImagePermuteChannels_ARGB8888(&src, &dest, map, kvImageNoFlags);

width, height, 고 srcBytesPerRow 에서 얻을 수 있습니다 당신의 픽셀 버퍼를 통해 CVPixelBufferGetWidth(), CVPixelBufferGetHeight(), 고 CVPixelBufferGetBytesPerRow(). srcRows 것에 포인터를 기본 주소의 바이트는 픽셀 버퍼 destRows 것 메모리를 할당 출력 RGBA 이미지입니다.

이해야보다 훨씬 빠르게 단순히 반복 바이트와 스왑 색상 구성 요소입니다.

에 따라 이미지의 크기는 더 빠른 솔루션을 업로드하려면 프레임의 OpenGL ES,렌더링하고 간단한 장방형과 함께 이 질감으로 사용 glReadPixels()를 아래로 당겨 RGBA 값입니다.더 나은 것을 사용하 iOS5.0 의 질감을 캐시 모두를 위해 업로드 및 다운로드,이 프로세스를 단 1~3ms 에 대한 720 프레임에 아이폰 4.물론 사용하여,OpenGL ES 더 많은 것을 의미를 지원하는 코드를 풀이다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top