上下文是一个 Quartz Composer 插件,我想在其中从相机帧创建一个 CGImage。这是相关代码
id<QCPlugInInputImageSource> inputImage_ = self.inputImage;
CGColorSpaceRef colorSpace = [inputImage_ imageColorSpace];
然后
dataProvider = CGDataProviderCreateWithData(NULL,
[inputImage_ bufferBaseAddress],
[inputImage_ bufferPixelsHigh] * [inputImage_ bufferBytesPerRow],
NULL);
cgImage = CGImageCreate(
[inputImage_ bufferPixelsWide],
[inputImage_ bufferPixelsHigh], 8,
(pixelFormat == QCPlugInPixelFormatI8 ? 8 : 32),
[inputImage_ bufferBytesPerRow], colorSpace,
(pixelFormat == QCPlugInPixelFormatI8 ? 0 :
kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host),
dataProvider, NULL, false, kCGRenderingIntentDefault);
CGDataProviderRelease(dataProvider);
CGImageRelease(cgImage);
如果我删除 cgImage 创建和释放我没有泄漏。泄漏仅在 Quartz Composer 的预览模式下发生(这不是垃圾收集,这可能意味着什么)。先感谢您