2

上下文是一个 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 的预览模式下发生(这不是垃圾收集,这可能意味着什么)。先感谢您

4

0 回答 0