2017-08-21 4 views
0

Ich habe ein GIF-Bild url und herunterladen möchten es auf die Dokumente Verzeichnis zu schreiben, denn das habe ich versuchtWie GIF-Bild von URL zu Dokumenten Verzeichnis

if let gifImageData = UIImagePNGRepresentation(image!) { 
    try gifImageData.write(to: fileURL, options: .atomic) 
} 

und auch

if let jpegImageData = UIImageJPEGRepresentation(image!, 1.0) { 
    try jpegImageData.write(to: fileURL, options: .atomic) 
} 
mit

Aber dieses Bild speichert als einzelnes png/jpg Bild und nicht als lebhaftes gif

Irgendwelche Lösung für dieses? diese

+1

Sie sollten nicht 'UIImagePNGRepresentation' und' UIImageJPEGRepresentation' verwenden herunterladen. Speichern Sie einfach die Daten. wie Baigs Antwort – Codus

+0

funktionierte das nur durch heruntergeladene Daten. –

Antwort

1

Problem mit Ihnen ist Dateiname, versuchen:

//The URL to Save 
let yourURL = NSURL(string: "http://somewebsite.com/somefile.gif") 
//Create a URL request 
let urlRequest = NSURLRequest(URL: yourURL!) 
//get the data 
let theData = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: nil, error: nil) 

//Get the local docs directory and append your local filename. 
var docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)).last as? NSURL 

docURL = docURL?.URLByAppendingPathComponent("myFileName.gif") 

//Lastly, write your file to the disk. 
theData?.writeToURL(docURL!, atomically: true) 
+0

kann ich wissen, was die Verwendung der Option atomisch beim Schreiben –

+0

atomisch: True bedeutet, die Daten in eine Sicherungsdatei geschrieben werden, und dann - unter der Annahme, dass keine Fehler auftreten - die Sicherungsdatei wird umbenannt in den Namen von Pfad angegeben; Andernfalls werden die Daten direkt in den Pfad geschrieben. – Baig

0

überprüfen sollten Sie

func download() { 
     DispatchQueue.global(qos: .background).async { 
      if let url = URL(string: "https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif"), 
       let urlData = NSData(contentsOf: url) 
      { 
       let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]; 
       let filePath="\(documentsPath)/tempFile.gif"; 
       DispatchQueue.main.async { 
        urlData.write(toFile: filePath, atomically: true) 
        PHPhotoLibrary.shared().performChanges({ 
         PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: URL(fileURLWithPath: filePath)) 
        }) { completed, error in 
         if completed { 
          print("photo is saved!") 
         } 
        } 
       } 
      } 
     } 
    } 
+0

Was ist die Verwendung von '' 'PHPHotoLibrary''' –

+0

importieren Fotos in Bibliothek speichern –

Verwandte Themen