【发布时间】:2013-06-10 02:46:17
【问题描述】:
我有一种方法可以调整CGImageRef 的大小并返回CGImageRef。问题是最后几行,我需要以某种方式释放但之后将其返回。有任何想法吗?谢谢
-(CGImageRef)resizeImage:(CGImageRef *)anImage width:(CGFloat)width height:(CGFloat)height
{
CGImageRef imageRef = *anImage;
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
if (alphaInfo == kCGImageAlphaNone)
alphaInfo = kCGImageAlphaNoneSkipLast;
CGContextRef bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(imageRef), 4 * width, CGImageGetColorSpace(imageRef), alphaInfo);
CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef);
CGImageRef ref = CGBitmapContextCreateImage(bitmap);
CGContextRelease(bitmap);
CGImageRelease(ref); //issue here
return ref;
}
【问题讨论】:
-
我相信在这种情况下你应该重命名你的方法以包含单词“new”或“copy”,然后简单地返回它而不释放。调用者会从名字中明白他们拥有该对象并负责释放它。
标签: ios macos cocoa core-graphics