即时消息试图剪切图像并对其进行遮罩..即时消息无法成功执行..但是程序在几分钟后以101状态退出
- (void) maskImage {
if(scopeOn==1){
UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
cachedImage=[UIImage imageNamed:@"loop.png"];
cachedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
imageRef = [cachedImage CGImage];
subImage = CGImageCreateWithImageInRect(imageRef, CGRectMake(scopeLoc.x-25, scopeLoc.y-25, 50, 50));
xMaskedImage = CGImageCreateWithMask(subImage, mask);
zoomImg.image = [UIImage imageWithCGImage:xMaskedImage]; // retImage;
[zoomImg setCenter:scopeLoc];
[self addSubview:zoomImg];
CGImageRelease(subImage);
CGImageRelease(xMaskedImage);
}
}
这是我正在使用的代码....因为我没有分配显式内存,所以我猜是CGImageCreateWithImageInRect函数正在分配内存,但并未释放...此函数每隔0.1秒就会调用一次...所以最终分配了备忘录的数量(我已经在内存泄漏性能监视器中看到了这一点)
那么,有没有其他方法可以使我达到相同的功能呢?
最佳答案
您稍后要释放subImage变量吗? CGImageCreateWithImageInRect遵循CoreFoundation的“创建”规则,因此需要您稍后释放该变量。
关于iphone - 有关“CGImageCreateWithImageInRect”的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/650495/