objective-c - 如何在没有内存泄漏的情况下将图像的 NSData 转换为 CGImageRef

标签 objective-c memory-leaks cgimageref

我将图像的 NSData 转换为 CGImage,如下所示,但我在那里遇到内存泄漏,但有人告诉我如何在不泄漏的情况下转换它:

CFDataRef imgData;
CGDataProviderRef imgDataProvider;
CGImageRef image1;
imgData = (CFDataRef)[array objectAtIndex:i];
    imgDataProvider = CGDataProviderCreateWithCFData (imgData);
    image1 = CGImageCreateWithPNGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault);

最佳答案

这应该有效:

CFDataRef imgData;
CGDataProviderRef imgDataProvider;
CGImageRef image1;
imgData = (CFDataRef)[array objectAtIndex:i];
imgDataProvider = CGDataProviderCreateWithCFData (imgData);
CFRelease(imgData);
image1 = CGImageCreateWithPNGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault);
CGDataProviderRelease(imgDataProvider);

完成后不要忘记使用 CGImageRelease(image1);

关于objective-c - 如何在没有内存泄漏的情况下将图像的 NSData 转换为 CGImageRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10615621/

相关文章:

iOS UITextFlied secureTextEntry 不适用于 iOS 6.1

iphone - 如何更新 MKPolyline/MKPolylineView?

ios - react native : Swift Module store objective C block for callback by delegate

c# - 找不到 C# Winforms 中的内存泄漏

swift - CGImageSource 到 CGImage?

ios - 如何移动 CGContextRef 上的图像

objective-c - 从内部 block 中调用 block

c++ - 为什么指针成员初始化为非零?

python - 创建 matplotlib 图形后如何释放内存

cgimageref - 将 CGImageRef (不是 UIImage)绘制到图像上下文中