Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Как сохранить фотографию в Photo Library.
Всем привет!
Сегодня мы научимся сохранять фотографию в Photo Library. Для достижения данной цели мы воспользуемся Библиотекой Photos, для этого переходим в файл ViewController (или свой) и импортируем ее:
import Photos
Ниже в классе создадим константку для фотографии:
let snapshot: UIImage = someImage
Вместо someImage можете указать свою фотографию или например фотографию загруженную пользователем в UIImage. Далее нам нужно создать функцию, в которой мы реализуем сохранение. Создаем ее:
fileprivate func saveImage() {
}
Внутри укажем PHPhotoLibrary, которая предоставляет доступ к метаданным и данным изображений для фотографий, видео и другого связанного с ними контента в библиотеке фотографий пользователя, включая контент из Camera Roll, iCloud Shared, Photo Stream, импортированный и синхронизированный из iTunes. После запрашиваем внести изменения с помощью performChanges и внутри создадим запрос на создание, удаление, изменение метаданных с помощью PHAssetChangeRequestе. Далее указываем новый актив с помощью creationRequestForAsset, который нужно создать, в нашем случае это наша константа:
PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAsset(from: snapshot)
}, completionHandler: { success, error in
if success {
// Успешно исход!
}
else if let error = error {
// Отмена
}
else {
// Отмена без ошибки
}
})
Теперь укажем, что произойдет в случае успешного сохранения фотографии или отмены сохранения. Вы можете здесь создать например Alert Controller или просто написать print().
Из-за настроек конфиденциальности Apple, мы должны спросить у пользователя, можно ли получить доступ к Библиотеке и можно ли туда что-то сохранять. Перейдем в файл info.plst, нажмем на плюс и создадим три запроса:
NSCameraUsageDescription - Разрешить доступ к камере для фотографирования
NSPhotoLibraryUsageDescription - Включите доступ к библиотеке фотографий, чтобы выбрать фотографию из своей библиотеки
NSPhotoLibraryAddUsageDescription - Включите доступ к библиотеке фотографий, чтобы сохранять изображения в своей библиотеке фотографий прямо из приложения
Отлично! Остается только добавить функцию saveImage() внутрь вашей кнопки, при нажатии на которую произойдет сохранение фотографии в Photo Library и можно тестировать приложение.
Благодарю за внимание!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.