How to edit gain map image to preserve HDR in Live Photo

I have an app that allows you to edit your photos. To preserve HDR, I edit both the SDR image and gain map image, like so:

let sdrImage = CIImage(data: data, options: [.applyOrientationProperty: true])
let gainMapImage = CIImage(data: data, options: [.applyOrientationProperty: true, .auxiliaryHDRGainMap: true])
// edit them...
try CIContext().writeHEIFRepresentation(of: sdrImage, to: url, format: .RGBA8, colorSpace: colorSpace, options: [.hdrGainMapImage: gainMapImage])

I also support editing the still photo in Live Photos. To do this you create a PHLivePhotoEditingContext, set the frameProcessor block which gives you a CIImage that I edit when the frame.type is .photo, then you create a PHContentEditingOutput and call saveLivePhoto. I’m not seeing any way to preserve HDR here. Interestingly the frame processor is called twice with .photo frame.type, but I don’t see any difference between these images. How can I edit a gain map image to preserve HDR in the still photo of a Live Photo?

Answered by DTS Engineer in 814750022

Hey @Jordan,

There is no API to edit a Live Photo that preserves the HDR gain map in the still, please file an enhancement request using Feedback Assistant to request this functionality.

Best regards,

Greg

Accepted Answer

Hey @Jordan,

There is no API to edit a Live Photo that preserves the HDR gain map in the still, please file an enhancement request using Feedback Assistant to request this functionality.

Best regards,

Greg

How to edit gain map image to preserve HDR in Live Photo
 
 
Q