【问题标题】:UIGraphicsImageRenderer produces image with incorrect PPIUIGraphicsImageRenderer 生成 PPI 不正确的图像
【发布时间】:2021-09-22 08:13:18
【问题描述】:

我正在尝试使用 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?我应该将比例因子应用于上下文还是什么?

【问题讨论】:

    标签: ios uiimage uigraphicsimagerenderer


    【解决方案1】:

    我自己想通了 - UIGraphicsImageRendererFormat 有一个“比例”属性,默认为与主屏幕相同的比例。 为了获得具有正确 PPI 的图像,我必须将比例显式设置为 1.0。

    【讨论】:

      猜你喜欢
      • 2014-12-03
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多