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.