2015-04-24 6 views
10

Ich werde wahrscheinlich dafür geflammt werden.APNG in iOS App

Ich frage mich, ob jemand weiß, wie man APNG (animierte PNG) in einer iPhone App laden kann?

Ich spreche nicht über mehrere PNG-Bild als NSArray von UIImages zu einem UIImageView hinzugefügt. Ich kann diese Methode schon machen, aber das erfordert mehrere PNG-Bilder.

Ich spreche über ein spezielles PNG-Format namens APNG (http://en.wikipedia.org/wiki/APNG), das nur 1 PNG-Datei enthält, aber Animation Meta-Daten hat.

Ich habe diese Bibliothek namens AVAnimator: http://www.modejong.com/AVAnimator/index.html gefunden, die angeblich APNG-Format laden kann, aber die Lizenz kostet $ 475 USD und die Bibliothek scheint vor ein paar Jahren (iOS 4) zu sein.

Ich habe auch gelesen, dass Apple iOS 8 Safari sowie Yosemite Safari Unterstützung für APNG eingebaut hat.

Ich möchte wirklich nicht auf ein UIWebView verwenden, nur um eine APNG-Datei anzuzeigen. Es funktioniert, ich habe es getestet, aber ich denke nicht, dass das ideal ist.

Ich hatte gehofft, dass es ein unentdecktes neues iOS SDK gibt, mit dem wir APNG in die App laden können, die mir nicht bekannt ist und vielleicht kennen Sie vielleicht.

Wie funktioniert die Line App (http://line.me/en/)? Sie scheinen PNGs für ihre "Aufkleber" animiert zu haben.

+1

Ich benutze nicht apng, aber wenn Anforderung nicht streng, würde ich für gifs gehen und https://github.com/Flipboard/FLAnimatedImage verwenden – turbo

+0

@turbo Ich stieß auf diese Bibliothek zu, es unterstützt derzeit GIF aber einer der zu -do item ist das Hinzufügen von APNG- und WebP-Unterstützung. Daumen drücken :) – Zhang

+0

Siehe https://stackoverflow.com/questions/25074340/avanimator-mvid-conversion/25478854#25478854 für eine vollständige Lösung – MoDJ

Antwort

5

Ich habe gerade einen Rahmen sehen APNG Dateien für iOS zu laden und anzuzeigen.

Sie könnten eine APNG Bild mit dem gleichen Muster von UIImage und UIImageView wie dies nur laden, indem Sie es mit:

let image = APNGImage(name: "your_apng_image") 
let imageView = APNGImageView(image: image) 

imageView.startAnimating() 

view.addSubview(imageView) 

Für weitere Informationen, können Sie es hier finden: https://github.com/onevcat/APNGKit

+1

Das Verknüpfen mit Ihrer eigenen Bibliothek ist keine gute Antwort.Verknüpfen Sie es, erklären Sie, warum es das Problem löst, geben Sie Code mit der Bibliothek dazu und erklären Sie, dass Sie es geschrieben haben, um eine bessere Antwort zu geben. Siehe: [** Was bedeutet "Gute" Eigenwerbung? **] (http://meta.stackexchange.com/q/182212/200235) – durron597

+0

Haben Sie eine Idee für Objective C –

+0

Ich muss die Bibliothek so schnell wie möglich verwenden Könnten Sie bitte in Swift 3 konvertieren. \t Ich habe es geschafft, eine Animation mit ImageIO im APNG-Format zu speichern, aber Ihre Bibliothek muss sie in ein Array von UIImage laden. https://github.com/radif/MSSticker-Images/blob/master/Classes/mcbAnimatedImagePersister.m –

3

Es ist wirklich undokumentiert, aber es ist irgendwo im ImageIO-Framework.

kann ich einige APNG Saiten in CGImageProperties.h

+0

Nein, ImageIO unterstützt APNG nicht. Es unterstützt animierte GIF, aber nicht APNG. – MoDJ

+2

Ich habe es geschafft, eine Animation in das APNG-Format mit ImageIO zu speichern, aber nicht sicher, wie man es in ein Array von UII lädt https://github.com/radif/MSSticker-Images/blob/master/Classes/mcbAnimatedImagePersister.m –

+0

Wir Diese können nicht in der Fotobibliothek gespeichert werden. – jjxtra

2

fand ich dieses Code,

https://github.com/radif/MSSticker-Images/

können Sie eine MSSticker APNG mit mu erstellen ltiply PNG. Vielleicht kannst du einen Teil davon extrahieren.

+0

Wie wäre es, wenn ich APNG vom Server herunterladen und dann in Stickersview laden? Dieses Beispiel zeigt nur, um Aufkleber mit apng oder png zu machen –