为什么使用UIGraphicsImageRenderer绘制图像时要使用大量内存?

问题描述 投票:0回答:1

我想在保持照片质量的同时向照片添加白色边框,所以我使用UIGraphicsImageRenderer绘制白色背景,然后将照片向上绘制,结果显着增加了内存使用率,还有更好的方法吗?

原始图片的分辨率为4032 * 3024。

let renderer = UIGraphicsImageRenderer(size: CGSize(width: canvasSideLength, height: canvasSideLength))
let newImage = renderer.image { context in
    UIColor.white.setFill()
    context.fill(CGRect(x: 0, y: 0, width: canvasSideLength, height: canvasSideLength))
    image.draw(in: CGRect(x: photoCanvasX, y: photoCanvasY, width: photoCanvasWidth, height: photoCanvasHeight))
}

enter image description hereenter image description hereenter image description here

ios swift image memory core-graphics
1个回答
0
投票

默认情况下,UIGraphicsImageRenderer将以屏幕分辨率生成图像(例如,可能是2倍或3倍,具体取决于您的设备)。例如。在3x设备上,请考虑:

© www.soinside.com 2019 - 2024. All rights reserved.