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 отображаемых изображений? Должен ли я применять коэффициент масштабирования к контексту или что-то в этом роде?

1 ответ

Я понял это самостоятельно - UIGraphicsImageRendererFormat имеет свойство «масштаб», которое по умолчанию имеет тот же масштаб, что и основной экран. Мне пришлось явно установить масштаб на 1,0, чтобы получить изображение с правильным PPI.

Другие вопросы по тегам