To File System
PhotoEditor SDK supports saving photos to the file system.
For the sake of this example, we create a photo from a URL and present the photo editor in a modal.
Note, that we have to make the current class the delegate of the PhotoEditViewController
in order to handle export and cancellation there.
Implementing the photo export delegate method#
When a photo export is successful the method photoEditViewControllerDidFinish
is invoked on the delegate class and a PhotoEditorResult
object passed as argument.
The result.output.data
attribute will contain the output image data, including all EXIF information in the format specified in your editor's configuration.
If no modifications have been made to the photo and the Photo
object that was passed to the editor's initializer was created using Photo(data:)
or Photo(url:)
we will not process the photo at all and simply forward it to this delegate method.
If the Photo
object that was passed to the editor's initializer was created using Photo(image:)
, it will be processed and returned in the format specified in your editor's configuration.
If you want to ensure that the original photo is always reencoded, even if no modifications have
been made to it, you can set PhotoEditViewControllerOptions.forceExport
to true
, in which case result.output.data
will
always point to a newly generated photo.
In order to save the photo to a file, we first need to create a temporary directory and append a random file name to it.
We ensure that the file extension matches the output format's UTI and check that the localURL
does not point to an existing file.
Now, we can simply write the photo object passed as data
property of the result to the localURL
.