Сохранить GIF в библиотеку фотографий iOS в Swift

Я пытаюсь сохранить изображение GIF, расположенное во временном файле, уже созданном с помощью кода Regift.

Подарок: https://github.com/matthewpalmer/Regift

Дело в том, что после сохранения с помощью PHPhotoLibrary GIF становится неподвижным изображением.

На другие вопросы есть ответы, которые ссылаются на AssetsLibrary, но Apple устарела и не работает для iOS 10.

Вопросы:

Сохранить изображение GIF из URL-адреса в фотопленку

Как записать анимированный GIF в фотопленку iOS?

Ни один из этих ответов не работает ... Я просто хочу преобразовать изображение в gif и сохранить его в фотопленке ... Любая помощь?

Спасибо


person rjgodoy    schedule 11.05.2017    source источник
comment
Эй, вы сохранили свой GIF в фотобиблиотеке? Если да, то, пожалуйста, помогите, я также хочу сохранить GIF в фотобиблиотеке.   -  person Khushbu Desai    schedule 09.07.2018
comment
Привет! Да, я понимаю. позвольте мне найти проект и загрузить его на git. Скоро поделюсь ссылкой.   -  person rjgodoy    schedule 26.07.2018
comment
Хорошо, спасибо :)   -  person Khushbu Desai    schedule 27.07.2018
comment
Эй, есть какое-нибудь обновление?   -  person Khushbu Desai    schedule 07.09.2018
comment
Извините, можете поделиться кодом?   -  person Khromos    schedule 27.11.2019
comment
Вот примеры кода. github.com/matthewpalmer/Regift   -  person rjgodoy    schedule 01.01.2020


Ответы (2)


Вы можете сохранить GIF через PHPhotoLibrary.

PHPhotoLibrary.shared().performChanges({
    let request = PHAssetCreationRequest.forAsset()
    request.addResource(with: .photo, fileURL: 'YOUR_GIF_URL', options: nil)
}) { (success, error) in
    if let error = error {
        print(error.localizedDescription)
    } else {
        print("GIF has saved")
    }
}
person Bleiki    schedule 09.01.2019
comment
Это прекрасно работает. Но мне нужно изменить, чтобы использовать request.addResource(with: .photo, data: data, options: nil), чтобы он не выдавал NSCocoaErrorDomain. - person Kimi Chiu; 20.04.2019

Gif можно сохранить через Activity ViewController. Укажите URL-адрес в контроллере активности и сохраните его, чтобы получить GIF в фотопленке [https://www.youtube.com/watch?v=-DdXUIjuAk0&feature=youtu.be]

let activityViewController = UIActivityViewController(
        activityItems: [url],
        applicationActivities: nil)

    activityViewController.popoverPresentationController?.sourceView = view
    activityViewController.popoverPresentationController?.sourceRect = view.frame
    present(activityViewController, animated: true, completion: nil)
person saad abbasi    schedule 16.10.2018