2016-11-22 1 views
2

Ich entwickle einige Tumblr-Client. Und ich möchte alle Fotos im Armaturenbrett herunterladen und sie in documentDirectory speichern. Einige von ihnen sind jpg einige sind gif. Ich habe erfolgreich JPG-Bilder mit diesem Code herunterladen:Wie kann ich GIF-Bild in swift herunterladen

myImage ist das Bild, das von URL heruntergeladen wird. Dieser Code funktioniert für JPG-Bilder, aber nicht gut für Gifs.

Und schließlich las ich diese Dateien mit diesem:

let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! 
    let filePath = documentsURL.appendingPathComponent(fname).path 
    if FileManager.default.fileExists(atPath: filePath) { 
     return UIImage(contentsOfFile: filePath)! 
    } 

Es ist Arbeit für jpg, aber nicht für Gifs. wenn ich versuche, Codes auf gifs Bilder zu schreiben/zu lesen, habe ich nur Bild nicht Animation.

Können Sie mir zeigen, wie pls mit einem Beispiel wird super sein.

Vielen Dank.

Antwort

4

Eigentlich funktioniert auch Ihr erster Code nicht richtig.

Was Sie erhalten ist das Bild. Sie brauchen oder wollen nicht übersetzen es in eine andere Art von Bild (UIImagePNGRepresentation). Speichern Sie einfach die Daten. Lesen Sie später die Daten direkt in ein UIImage.

+0

matt, Danke !. Ich speichere mit Bild nur mit Daten (nicht als Bilddatei) und lade Bild mit diesen Daten. Es funktionierte!. Das ist eine gute Idee, danke nochmal – Antiokhos

0

Ich denke, es gibt kein Problem mit dem Herunterladen und Sie versuchen nur, es als ein Png darzustellen; stattdessen versuchen, dies mit this library gespeicherten Daten zu präsentieren, zum Beispiel

0

Try this:

#import AssetsLibrary 

let lib = ALAssetsLibrary() 

let data = NSData(contentsOfURL: getCurrentGIFURL) 

lib.writeImageDataToSavedPhotosAlbum(data, metadata: nil) { (url, err) in 

    } 
3

ich persönlich this tinnie Werkzeug für GIFs verwendet. Fügen Sie einfach die iOSDevCenters + GIF.swift Datei direkt auf Ihr Projekt und es verwenden, wie unten

1. Online URL

let imageURL = UIImage.gifImageWithURL(gifURL) 
    let yourImageView = UIImageView(image: imageURL) 

2. Lokale Dateiname

let imageName = UIImage.gifImageWithName(imageName) 
    let yourImageView = UIImageView(image: imageName) 
gezeigt

3. Verwendung von Daten

let imageData = NSData(contentsOf: Bundle.main.url(forResource: "name", withExtension: ".gif")) 
    let imageData = UIImage.gifImageWithData(imageData) 
    let yourImageView = UIImageView(image: imageData) 
Verwandte Themen