UIGraphicsImageRenderer 生成 PPI 不正确的图像

问题描述

在上传到我的网络服务器之前,我尝试使用 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?我应该将比例因子应用于上下文还是其他什么?

解决方法

我自己弄明白了 - UIGraphicsImageRendererFormat 有一个 'scale' 属性,它默认与主屏幕的比例相同。 我必须明确地将比例设置为 1.0 才能获得具有正确 PPI 的图像。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...