PHContentEditingOutput
Оператор импорта
Swift
import Photos
Objective C
@import Photos;
Доступность
Доступный в iOS 8.0 и позже.
A PHContentEditingOutput объект представляет результаты редактирования фотографии или видеоконтента фото актива.
Отредактировать фотографию актива или видеоконтент:
Выборка a
PHAssetобъект, представляющий фотографию или видео, которое будет отредактировано.Вызовите актив
requestContentEditingInputWithOptions:completionHandler:метод для получения aPHContentEditingInputобъект. Этот объект предоставляет информацию об активе, данные актива, которые будут отредактированы, и изображение предварительного просмотра для дисплея.Примените свои редактирования к активу. Позволить пользователю продолжать работать с редактированием позже (например, для корректировки параметров фото фильтра), создают a
PHAdjustmentDataобъект, описывающий изменения.Инициализируйте a
PHContentEditingOutputобъект сPHContentEditingInputвозразите, что Вы получили. Предоставьте отредактированному содержаниюrenderedContentURLсвойство, и предоставляет данные корректировки сadjustmentDataсвойство.Используйте фото блок изменения библиотеки для фиксации редактирования. (Для получения дополнительной информации посмотрите Ссылку класса PHPhotoLibrary.) В блоке, создайте a
PHAssetChangeRequestобъект и наборcontentEditingOutputсвойство к редактированию вывело Вас создаваемый.Каждый
PHPhotoLibraryperformChangesвызовите propmpts пользователь для разрешения отредактировать содержание фото библиотеки — чтобы отредактировать многократные активы в одном пакете, создать многократныйPHAssetChangeRequestобъекты в том же блоке изменения, каждом с его собственным соответствиемPHContentEditingOutputобъект.
Можно также отредактировать активы из фотографии, редактируя расширения. В этом случае, вместо того, чтобы работать с a PHAsset объект, Вы реализуете методы в PHContentEditingController протокол. Фотографии обеспечивают a PHContentEditingInput возразите, когда Ваше расширение начнет редактировать. Когда редактирование завершено, фотографии запрашивает a PHContentEditingOutput объект, содержащий отредактированное содержание актива.
-
Создает вывод редактирования из указанного ввода редактирования.
Объявление
Swift
init!(contentEditingInputcontentEditingInput: PHContentEditingInput!)Objective C
- (instancetype)initWithContentEditingInput:(PHContentEditingInput *)contentEditingInputПараметры
contentEditingInputИнформация предоставляющего объекта об активе, который будет отредактирован.
Возвращаемое значение
Выводится инициализированное довольное редактирование.
Обсуждение
Для завершения редактирования используйте
renderedContentURLсвойство для обеспечения отредактированного содержания актива. Затем используйтеPHAssetChangeRequestкласс илиPHContentEditingControllerпротокол для передачи редактирования хранению.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Создает вывод редактирования для использования в добавлении нового актива к фото библиотеке.
Объявление
Swift
init!(placeholderForCreatedAssetplaceholderForCreatedAsset: PHObjectPlaceholder!)Objective C
- (instancetype)initWithPlaceholderForCreatedAsset:(PHObjectPlaceholder *)placeholderForCreatedAssetПараметры
placeholderForCreatedAssetОбъект местозаполнителя, связывающий вывод редактирования с a
PHAssetChangeRequestобъект для создания нового актива.Возвращаемое значение
Выводится инициализированное довольное редактирование.
Обсуждение
Используйте этот метод, если Вы хотите добавить новый актив к фото библиотеке с отредактированным содержанием, в противоположность редактированию содержания актива после добавления его к библиотеке. Например, Вы могли бы использовать эту опцию, если Ваше приложение применяет фильтры к фотографиям, это получает с камерой устройства — вместо того, чтобы сохранить только отфильтрованный образ к фото библиотеке, Ваше приложение может сохранить и отфильтрованный и исходное изображение, позволив пользователю вернуться к исходному изображению или применить различные фильтры позже. Код ниже иллюстрирует такой поток операций:
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{// Make a change request for adding an asset.PHAssetChangeRequest *changeRequest =[PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:originalJPEGFileURL];// Make a content editing output for use with the change request.PHObjectPlaceholder *placeholder = changeRequest.placeholderForCreatedAsset;PHContentEditingOutput *contentEditingOutput =[[PHContentEditingOutput alloc] initWithPlaceholderForCreatedAsset:placeholder];// Apply content adjustments to the newly created asset.contentEditingOutput.adjustmentData = adjustmentData;[adjustedJPEGData writeToURL:contentEditingOutput.renderedContentURL atomically:YES];changeRequest.contentEditingOutput = contentEditingOutput;} completionHandler:^(BOOL success, NSError *error) {if (!success) NSLog(@"Can't create asset: %@", error);}];
В этом примере приложение сначала использует a
PHAssetChangeRequestвозразите для запроса создания нового актива с неотредактированным изображением, полученным от камеры (originalJPEGFileURL). Затем это создает aPHContentEditingOutputобъект сplaceholderForCreatedAssetобъект, предоставленный запросом на изменение. Наконец, это обеспечивает отфильтрованные данные изображения (adjustedJPEGData) и данные корректировки, описывающие фильтры (adjustmentData) к выводу редактирования и добавляет вывод редактирования к запросу на изменение.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
adjustmentDataСвойствоОбъект, описывающий изменения, внесенные в актив.
Объявление
Swift
var adjustmentData: PHAdjustmentData!Objective C
@property(readwrite, strong) PHAdjustmentData *adjustmentDataОбсуждение
Вы используете данные корректировки для описания «рецепта» для редактирования, которое могут использовать более поздние редактирования. Например, фотография, редактируя приложение может использовать это свойство для сохранения информации о фильтрах, применился к фотографии. Позже, то же приложение (или другое приложение, понимающее его формат данных корректировки) могут загрузить информацию о фильтре, изменить параметры фильтра и повторно применить фильтры к исходной фотографии.
Если Вы пишете новое содержание актива в URL, указанный
renderedContentURLсвойство, необходимо также обеспечить новое, отличноеPHAdjustmentDataобъект, описывающий Ваше редактирование. Передача существующего ранее объекта данных корректировки (который описывает более раннее редактирование), результаты в неопределенном поведении.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
renderedContentURLСвойствоURL, в котором можно записать файл, содержащий, отредактировал содержание актива. (только для чтения)
Объявление
Swift
@NSCopying var renderedContentURL: NSURL! { get }Objective C
@property(readonly, copy) NSURL *renderedContentURLОбсуждение
Считайте это свойство для нахождения URL для записи отредактированного содержания актива. Затем при редактировании фото актива запишите измененное фото изображение в файл в формате JPEG в этом URL. При редактировании видео актива экспортируйте видео в QuickTime (
.mov) файл в этом URL.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
