HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何从照片库加载动画GIF大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在iOS Swift中,我很难将动画GIF从设备照片库加载到UIImageView或从中创建.gif文件.如果它是服务器上的文件或者它在应用程序中是正确的,那么显示动画GIF没有问题.但是,当我从照片库加载它时,我丢失了动画.我发现了一些Objective-C解决方案并尝试将它们转换为Swift,但没有任何运气.

这是我到目前为止:

@IBACtion func buttonTapped(sender: UIButton) {
    SELEctPhoto()
}

func SELEctPhoto() {
    let photoLibraryController = UIImagePickerController()
    photoLibraryController.delegate = self
    photoLibraryController.sourCEType = UIImagePickerControllersourceType.PhotoLibrary

    let mediaTypes:[String] = [kUTTypeImage as String]
    photoLibraryController.mediaTypes = mediaTypes
    photoLibraryController.allowsEdiTing = false

    self.presentViewController(photoLibraryController,animated: true,completion: nil)
}

// UIImagePickerControllerDelegate
func imagePickerController(picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    let origImage = info[UIImagePickerControllerOriginalImage] as! UIImage

    self.imageView.image = origImage

    picker.dismissviewControllerAnimated(true,completion: nil)

}

最理想的情况是,我想将照片库图像保存到服务器上的gif文件中.从那里我可以毫不费力地显示它.但是,我需要一些帮助将照片库中的数据转换为某种类型的属性,而不会丢失动画.我需要使用像ALAssetsLibrary这样的东西吗?

谢谢.

解决方法

是的,使用ALAssetsLibrary→现在称为PHAsset.

你应该得到gif的NSData,而不是UIImage(因为UIImage只会得到第一帧.)

所以基本上你会做这样的事情:

一个你获得资产

let requestOptions = PHImagerequestOptions()
requestOptions.isSynchronous = true // adjust the parameters as you wish    

PHImageManager.default().requestImageData(for: asset,options: requestOptions,resultHandler: { (imageData,UTI,_,_) in
    if let uti = UTI,let data = imageData,// you can also use UTI to make sure it's a gif
       UTTypeConformsTo(uti as CFString,kUTTypeGIF) {
        // save data here
    }
})

资源:PHAsset

大佬总结

以上是大佬教程为你收集整理的ios – 如何从照片库加载动画GIF全部内容,希望文章能够帮你解决ios – 如何从照片库加载动画GIF所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。