我正在尝试将图像裁剪CMSampleBufferRef为特定大小。我正在做 5 个步骤 - 1.PixelBuffer从SampleBuffer2. 转换PixelBuffer为CIImage3. 裁剪CIImage4. 渲染CIImage回PixelBuffer5. 附加PixelBuffer到SampleBuffer. 到目前为止,我在第 4 步遇到了问题 - 将图像渲染回PixelBuffer(无法检查超出这一点)没有任何内容渲染到缓冲区(我使用相同的检查CIImage imageWithCVPixelBuffer并获得 NULL 作为返回)。非常感谢任何提示或帮助。
CGRect cropRect = CGRectMake(0, 0, 640, 480);
CIImage *ciImage = [CIImage imageWithCVPixelBuffer:(CVPixelBufferRef)CMSampleBufferGetImageBuffer(sampleBuffer)]; //options: [NSDictionary dictionaryWithObjectsAndKeys:[NSNull null], kCIImageColorSpace, nil]];
ciImage = [ciImage imageByCroppingToRect:cropRect];
CVPixelBufferRef pixelBuffer;
CVPixelBufferCreate(kCFAllocatorSystemDefault, 640, 480, kCVPixelFormatType_32BGRA, NULL, &pixelBuffer);
CVPixelBufferLockBaseAddress( pixelBuffer, 0 );
CIContext * ciContext = [CIContext …Run Code Online (Sandbox Code Playgroud)