繁体   English   中英

CIFilter filterWithCVPixelBuffer在iOS中返回nil

[英]CIFilter filterWithCVPixelBuffer returning nil in iOS

我正在尝试使用filterWithCVPixelBuffer创建CIFilter,并且返回nil。 这就是我想要做的:

CFDictionaryRef options = CMCopyDictionaryOfAttachments(nil, photo.pixelBuffer, kCMAttachmentMode_ShouldPropagate);
CIFilter * ciFilter = [CIFilter filterWithCVPixelBuffer:photo.pixelBuffer properties:(__bridge NSDictionary*)options options:nil];

photo是提供给委托人的AVCapturePhoto的实例。 我正在使用iOS 12,并在iPhone7上运行代码。

问题出在属性NSDictionary中。 我应该简单地通过photo.metadata。 因此,函数调用如下所示:

CIFilter * ciFilter = [CIFilter filterWithCVPixelBuffer:photo.pixelBuffer properties:photo.metedata options:nil];

当然,您可以传递包含所需CIRAWFilterOption(s)NSDictionary

我在头文件的文档中找到了答案:

返回一个CIFilter,该CIFilter随后将返回经过正确处理的CIImage作为“ outputImage”。

注意,使用该初始值设定时,你应该在一个CVPixelBufferRef通过用下面的原始像素格式类型kCVPixelFormatType_14Bayer_GRBG,kCVPixelFormatType_14Bayer_RGGB,kCVPixelFormatType_14Bayer_BGGR,kCVPixelFormatType_14Bayer_GBRG以及从CMSampleBufferRef根属性附件中的一个。

因此,我猜想这种方法应该在有CMSampleBuffer情况下使用,而从AVCapturePhoto时不可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM