0
카메라에서 AVCaptureVideoDataOutput
을 사용하여 이미지를 가져오고 있습니다. 내 captureOutput에 pixelBuffer을 검사 :나중에 처리하기 위해 카메라에서 이미지를 저장하는 가장 좋은 방법은 무엇입니까?
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection {
CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
나는 내가 pixelBuffer에서 원하는 것을 찾을 수 있다면, 나중에 이미지 처리에 이미지를 저장합니다.
나는 세 가지 옵션을보고, 내가 사용하는 가장 적합한 궁금 :
- 내가
sampleBuffer
을 저장하거나 사본이 - 내가
pixelBuffer
을 절약 할 수 있도록하거나 을의 사본을 만들 수
CGImage
을pixelBuffer
에서 만들고 저장할 수 있으며 나중에 이미지 처리를해야 할 때CGBitmapContextGetData()
을 사용하여 작동 할 비트 맵을 얻을 수 있습니다. 거기에 불필요한 복사본이 여기에없는 것처럼 보입니다.
나중에 처리하기 위해 비트 맵을 저장하는 것이 바람직한 방법은 무엇입니까? 비트 맵을 몇 분 이상 저장하지 않아도됩니다. 즉, 파일 시스템에 저장할 필요가 없습니다. 대답이 1 또는 2라면 버퍼를 유지할 수 있습니까? 아니면 malloc
및 memcpy
을 사용하여 버퍼를 복사해야합니까?