代码之家  ›  专栏  ›  技术社区  ›  PvDev

如何在swift 4中从UIImagepicker中拾取GIF图像?

  •  0
  • PvDev  · 技术社区  · 7 年前

    在我的项目中,尝试从UIImage picker导入GIF。从图库中拾取的GIF图像将执行某些操作,如播放和停止。现在我可以从图库中选择GIF图像,但结果显示为图像而不是GIF图像。

    谁能帮我摆脱这个困境吗。

    1 回复  |  直到 7 年前
        1
  •  -1
  •   veerendra pratap singh    7 年前

    试试这个,它会帮你的。

    步骤1:创建全局变量

    var IMG:String?
    

    步骤2:将此函数放入代码中。

        func getFileName(info: [String : Any]) -> String {
    
        if let assetPath = info[UIImagePickerControllerReferenceURL] as? URL {
            let result = PHAsset.fetchAssets(withALAssetURLs: [assetPath], options: nil)
            let asset = result.firstObject
            let fileName = asset?.value(forKey: "filename")
            let fileUrl = URL(string: fileName as! String)
            if let name = fileUrl?.deletingPathExtension().lastPathComponent {
                print(name)
    
    
       //let assetPath = info[UIImagePickerControllerReferenceURL] as! NSURL
                if (assetPath.absoluteString.hasSuffix("JPG")) {
                    sonu = "JPG"
                    print("JPG")
                }
                else if (assetPath.absoluteString.hasSuffix("PNG")) {
                    sonu = "PNG"
                    print("PNG")
                }
                else if (assetPath.absoluteString.hasSuffix("GIF")) {
                    sonu = "GIF"
                    print("GIF")
                }
                else {
                    sonu = "Unknown"
                    print("Unknown")
                }
    
                return name
            }
        }
        return ""
    
    }
    

    步骤3:在 ImagePickerController

        if let image = info[UIImagePickerControllerEditedImage] as? UIImage
        {
            imageview.image = image
            let IMG = getFileName(info: info)
            print(IMG)
            if IMG == "JPG"
            {
                imageDataForApi = UIImagePNGRepresentation(image)
            }
            else if IMG == "GIF"
            {
                imageDataForApi = UIImageJPEGRepresentation(image, 0)
            }
        }
        self.dismiss(animated: true) { () -> Void in
    
        }