gpt4 book ai didi

swift - 向 UIImages 内存问题添加边框

转载 作者:行者123 更新时间:2023-11-28 06:06:37 28 4
gpt4 key购买 nike

我试图通过在上下文中绘制它来为我的图像添加边框,但内存不断增长。

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 的建议添加自动释放池.似乎没有任何区别。这是分配崩溃前的样子。 enter image description here关于如何解决这个问题的任何建议?我是不是用错了 autoreleasepool?

最佳答案

所以在讨论它并检查图像之后,它看起来像是试图一次处理 100 个,这对于 iOS 设备的内存处理来说太多了。

解决方案是对文件进行批处理以处理如下内容:

  1. 创建下一批。
  2. 处理/上传当前批处理的图片。
  3. 处理当前批处理。
  4. 从上面的 1 开始重复。

这样一来,您永远不必一次在内存中保存太多内容。

关于swift - 向 UIImages 内存问题添加边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48019064/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com