我正在尝试使用 UIGraphicsImageRenderer 在上传到我的网络服务器之前修复图像的方向,以下代码有效,但它生成的图像具有比我想要的更高的 PPI:
let imageRendererFormat = UIGraphicsImageRendererFormat()
let imageRenderer = UIGraphicsImageRenderer(size: image.size, format: imageRendererFormat)
let pngData = imageRenderer.pngData(actions: { context in
let rect = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
image.draw(in: rect)
})
生成的图像具有正确的分辨率,但 PPI 是 216 而不是预期的 72。我观察到原始图像的比例是 1.0,但 context.currentImage 的比例是 3.0。我不确定这个 3.0 号码是从哪里来的。不过,这可能解释了 216 PPI,因为 3 x 72 = 216。
如何修复正在渲染的图像的 PPI?我应该将比例因子应用于上下文还是什么?