在上传到我的web服务器之前,我正在尝试使用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?我应该将比例因子应用于上下文还是其他什么?
发布于 2021-07-14 05:20:18
这是我自己想出来的-- UIGraphicsImageRendererFormat有一个“scale”属性,默认与主屏幕的比例相同。我必须显式地将比例设置为1.0,才能获得具有正确PPI的图像。
https://stackoverflow.com/questions/68359606
复制相似问题