Отображается изображение HDR, не отображается динамический диапазонIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Отображается изображение HDR, не отображается динамический диапазон

Сообщение Anonymous »

Я экспериментирую с HDR-изображениями в iOS. Я могу загрузить изображение HDR, но оно не отображается с ожидаемым эффектом, который я вижу в том же изображении в приложении «Фотографии». Я экспортировал фотографию из фотографий (на Mac) с помощью команды «Экспорт без изменений». Я повторно импортировал, чтобы убедиться, что фотографии показывают "популярность".
Я пробую и UIImage, и CIImage, с теми же результатами. Приведенный ниже пример протестирован на моем iPhone 14 Pro (не в симуляторе).
Раскадровка для приведенного ниже кода имеет три элемента UIImageView (верхний, средний и нижний).

Код: Выделить всё

let fileURL = Bundle.main.url(forResource: "IMG_6972", withExtension:"HEIC")!
var config = UIImageReader.Configuration()
config.prefersHighDynamicRange = true
let imageReader = UIImageReader(configuration: config)
let topImage = imageReader.image(contentsOf: fileURL)!
topImageView.preferredImageDynamicRange = .high
topImageView.image = topImage
// The image appears, looks SDR

print("topImage.isHighDynamicRange: \(topImage.isHighDynamicRange)") // true

let ciimage = CIImage(contentsOf: fileURL)!
bottomImageView.image = UIImage(ciImage: ciimage)
// The image appears, looks SDR - identical to topImage
print("color space: \(ciimage.colorSpace!)") // (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; Display P3)

let gainMap = CIImage(contentsOf: fileURL, options: [.auxiliaryHDRGainMap: true])!
middleImageView.image = UIImage(ciImage: gainMap)
// The gain map image appears as expected

Дополнительно для сравнения попробовал:

Код: Выделить всё

let sdrImage = UIImage(named: "IMG_6972.HEIC")! // UIImage.named doesn't support HDR
print("sdrImage.isHighDynamicRange: \(sdrImage.isHighDynamicRange)")``` // false, as expected
bottomImageView.image = sdrImage
и изображение совпадает с двумя другими, что еще раз подтверждает, что версия изображения HDR не отображается ни в версиях UIImageReader, ни в версиях CIImage, указанных выше.
Я также отслеживаю использование EDR UIScreen с помощью:

Код: Выделить всё

print("currentEDR: \(UIScreen.main.currentEDRHeadroom)")
print("maxEDR: \(UIScreen.main.potentialEDRHeadroom)")
maxEDR — 8,0. currentEDR равен 1,0 при запуске и 1,3 после задержки в 1,0 секунды. Это заставляет меня думать, что HDR может немного отображаться, но недостаточно, чтобы это было заметно.
Нужно ли мне сделать что-то особенное, чтобы установить UIViewController, UIScreen или UIApplication (и т. д.) быть «Режимом HDR» или чем-то подобным?

Подробнее здесь: https://stackoverflow.com/questions/786 ... amic-range
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Правильно отобразите HDR-изображение в SDK с помощью ImageIO.
    Anonymous » » в форуме IOS
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Получение цветов HDR перед применением тональной компрессии в шейдере SCNTechnique
    Гость » » в форуме IOS
    0 Ответы
    91 Просмотры
    Последнее сообщение Гость
  • Параметры CIContext для отображения HDR
    Anonymous » » в форуме IOS
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous
  • Сохранение изображений в формате Ultra HDR (JPEG_R)
    Гость » » в форуме Android
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость
  • HDR-кодер Nvidia
    Гость » » в форуме C++
    0 Ответы
    84 Просмотры
    Последнее сообщение Гость

Вернуться в «IOS»