CGBitmapContextCreate内存释放责任

时间:2012-10-26 15:16:53

标签: ios memory-management cgbitmapcontext

这是我创建UIImage的方法。我用calloc分配了piOutData。现在,当我在结束时调用CGImageRelease时,它是否会自动释放piOutData,或者我需要通过免费手动执行此操作。

int m_iH = iInMaxDim;
int m_iW = iInMaxDim;

UInt8*piOutData = calloc(iInMaxDim *iInMaxDim*4,sizeof(UInt8));
CGContextRef ctx = CGBitmapContextCreate(piOutData,  
                                         m_iW,  
                                         m_iH,  
                                             CGImageGetBitsPerComponent(inImage.CGImage),
                                         m_iW*4,  
                                         CGImageGetColorSpace(inImage.CGImage),  
                                         CGImageGetBitmapInfo(inImage.CGImage) 
                                         ); 
CGImageRef imageRef = CGBitmapContextCreateImage(ctx);  
CGContextRelease(ctx);
UIImage *finalImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);

1 个答案:

答案 0 :(得分:1)

  

...当我最后调用CGImageRelease时,会自动释放piOutData吗?

没有。 piOutData归您所有。