【问题标题】:Get Gif in UIImageView from UIImagePickerController从 UIImagePickerController 获取 UIImageView 中的 Gif
【发布时间】:2021-02-17 05:50:01
【问题描述】:

GIFU 库用于在UIImageView 中显示从UIImagePickerController 挑选的 Gif 图像

  public func imagePickerController(_ picker: UIImagePickerController,
                                    didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
    
    
    let imageUrl          = info[.referenceURL] as! NSURL
    let imageName         = imageUrl.lastPathComponent
    let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
    let photoURL          = NSURL(fileURLWithPath: documentDirectory)
    let localPath         = photoURL.appendingPathComponent(imageName!)
    let image             = info[.originalImage]as! UIImage
    let data              = image.jpegData(compressionQuality: 0)
    
    do {
      try data?.write(to: localPath!, options: Data.WritingOptions.atomic)
    }
    catch
    {
      // Catch exception here and act accordingly
    }
    self.pickerController(picker, didSelect: data)
  }
  
  func didSelect(image: Data?) {
    
    tempImage.prepareForAnimation(withGIFData: image!, loopCount: 3) {
      DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: {
        self.tempImage.startAnimating()
      })
    }
  }

图像显示但没有动画,看起来图像格式在选择后发生了变化。

【问题讨论】:

    标签: ios swift uiimageview uiimage uiimagepickercontroller


    【解决方案1】:

    您正在使用以下代码行将 GIF 转换为 jpeg 数据。

     let data  = image.jpegData(compressionQuality: 0)
    

    避免将数据转换为 JPEG,现在(我猜是从 iOS 13 开始)本机控制器确实支持在选择时预览 gif 文件试试。

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 2012-04-08
      • 2011-06-07
      相关资源
      最近更新 更多