我有一张由50 * 50像素的小图片组成的大图片。 n * m的小图片数量。你需要制作50 * 50的小副本 - >每张图片2 * 2。我启动代码 - 在模拟器上可以看到,在这个阶段它是1.3-1.4 GB的RAM,所以在真实设备上崩溃继续。 N = 200米= 180
UIGraphicsBeginImageContextWithOptions (CGSize (width: n * 2, height: m * 2), false, 0.0) var cellImage: UIImage? For y in 0 ..
UIGraphicsBeginImageContextWithOptions(CGSize(width: n*2, height: m*2), false, 0.0)
var cellImage : UIImage?
for y in 0..<n {
for x in 0..<m {
cellImage = вызов функции для получения картинки 50*50...
cellImage?.draw(in: CGRect(x: y*2, y: x*2, width: 2, height: 2))
cellImage = nil
}
}
// End
miniViewImage.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
答案 0 :(得分:0)
修改如下:
for x in 0..<m {
autoreleasepool {
cellImage = вызов функции для получения картинки 50*50...
cellImage?.draw(in: CGRect(x: y*2, y: x*2, width: 2, height: 2))
cellImage = nil
}
}
这将在迭代的每一步释放内存。