我试图通过在上下文中绘制边框来为我的图像添加边框,但内存不断增长。
func borderImages(image: [UIImage]) -> [UIImage] {
let width: CGFloat = 3000
let height: CGFloat = 3000
var borderedImages = [UIImage]()
for image in images {
autoreleasepool {
UIGraphicsBeginImageContextWithOptions(CGSize(width: width, height: height), true, 1.0)
let x: CGFloat = (width - image.size.width)/2.0
let y: CGFloat = (height - image.size.height)/2.0
let rect = CGRect(x: x, y: y, width: image.size.width, height: image.size.height)
image.draw(in: rect)
if let borderedImage = UIGraphicsGetImageFromCurrentImageContext() {
borderedImages.append(borderedImage)
}
UIGraphicsEndImageContext()
}
}
return borderedImages
}
我尝试按照here的建议添加autoreleasepool。似乎没有任何区别。这是分配在崩溃之前的样子。有关如何解决此问题的任何建议?我使用autoreleasepool错了吗?
答案 0 :(得分:1)
因此,在讨论并查看图像之后,它看起来像是尝试立即处理100,这对于iOS设备的内存处理来说太多了。
解决方案是批处理文件以进行如下处理:
这样做你不应该一次在内存中保留太多。