saveLivePhoto(to:options:completionHandler:)
Processes and saves a full-quality Live Photo as the output of your editing session.
Declaration
func saveLivePhoto(to output: PHContentEditingOutput, options: [String : Any]? = nil, completionHandler handler: @escaping @Sendable (Bool, (any Error)?) -> Void)func saveLivePhoto(to output: PHContentEditingOutput, options: [String : Any]? = nil) async throwsParameters
- output:
The photo editing output to receive the rendered Live Photo, created from the same Phcontenteditinginput object you used to begin this Live Photo editing context.
- options:
Options that affect Live Photo rendering. See
Live Photo Processing Options. - handler:
A block that Photos calls on the main queue after rendering is complete. The block takes the following parameters:
- success
trueif rendering succeeds; otherwisefalse.- error
If rendering succeeds, this parameter is
nil. If rendering fails, this parameter contains an error object describing the failure.
Discussion
Use this method when you have finished an editing session and need to provide rendered output in a PHContentEditingOutput object. Unlike when rendering output for a photo or video asset, you don’t need to provide rendered output using the renderedContentURL property of the editing output object. Instead, create a PHContentEditingOutput object using the init(contentEditingInput:) initializer, passing the same PHContentEditingInput object you used in the PHLivePhotoFrameProcessingBlock initializer to start this Live Photo editing context. Then pass that editing output object to this method, and Photos renders the Live Photo and provides it to the editing output.
After this method’s completion handler signals successful rendering, you use the content editing output to complete the edit. In an app using the Photos framework, create a PHAssetChangeRequest object inside a PHPhotoLibrary performChanges block, and set its contentEditingOutput property to your editing output. In a photo editing extension running in the Photos app, your main view controller provides content editing output when requested by the finishContentEditing(completionHandler:) method.