Le format d'image WebP sur iOS
Je suis actuellement à la recherche de la possibilité d'utiliser Google, le format d'image WebP dans notre logiciel iOS.
J'ai trouvé il n'est pas difficile à décoder le WebP dans RVBA8888 au besoin à l'aide de google C-bibliothèque.
Cependant, j'aimerais créer une application comparable à UIImage en termes à la fois de l'API et de la performance.
T1. Est-il possible dans iOS pour développer un décodeur d'image de sorte que natif imageWithData et d'autres Api va lire le nouveau format?
T2. Si non, ce que l'API ne UIImageView (et d'autres sur le cadre de contrôles fournis) à utiliser pour dessiner les UIImage? Est-elle publique (par exemple, drawInRect/drawAtPoint) ou interne? Puis-je hériter de UIImage, remplacer quelques méthodes (telles que +imageWithContentsOfFile, +imageWithData, +imageNamed, - drawInRect, -drawAtPoint), et d'avoir mon WPImage objets se comportent bien avec SDK fournis par l'Api?
T3. Si chaque instance de mon hypothétique WPImage classe abonnez-vous pour UIApplicationDidReceiveMemoryWarningnotification (pour rincer image RGBA tampon en laissant la plus petite valeur d'origine WebP des données dans la RAM), n'est-ce pas blesser la performance bien? Le logiciel que nous développons peuvent facilement avoir des centaines de différentes images dans la mémoire RAM.
Merci d'avance!
OriginalL'auteur Soonts | 2011-12-29
Vous devez vous connecter pour publier un commentaire.
J'ai fait le plein (décoder/encoder)
UIImage
wrapper pourWebP
.https://github.com/shmidt/WebP-UIImage
Je n'ai pas essayé sur l'appareil, mais vous pouvez essayer la version avec mise à jour du cadre: github.com/seanooi/iOS-WebP
J'ai mis à jour le cadre. Les problèmes s'avère être de ma patience: c'est tout simplement trop lent et trop intensive du processeur pour coder des images de grande taille. Si je redimensionner l'image à quelque chose comme 1200 x 1200, je peux obtenir les données après environ 10 secondes. La taille du fichier est plus petit qu'un JPEG, mais le temps de traitement est tout simplement trop long pour que ce soit utile dans mon application. merci
Merci pour le partage!
Il faut environ 18 secondes pour coder une image 4K sur les 6S. La plupart du temps est passé dans google WebPEncodeRGBA
OriginalL'auteur Shmidt
Il y en est un exemple . https://github.com/carsonmcdonald/WebP-iOS-example
viens de trouver quelque chose qui semble relié - github.com/seanooi/iOS-WebP
OriginalL'auteur Nathan Bao
Un autre exemple que j'ai écrit utilise le travail que Carson McDonald a commencé, mais réutilisables de la mode. Fondamentalement, vous ajoutez le WebP.cadre de votre projet (inclus dans mon exemple ou créez-mesure à l'aide des instructions Carson a sur son site) et ensuite vous pouvez faire quelque chose comme ceci:
Si vous voulez prendre un coup d'oeil à mon exemple, rendez-vous ici: https://github.com/nyteshade/iOSWebPWithAlphaExample
OriginalL'auteur nyteshade
D'abord, décoder le WebP pixels dans une mémoire tampon. Ensuite, vous devez appeler CGDataProviderCreateWithData() pour créer un "fournisseur de données" pour CoreGraphics, puis appeler CGImageCreate() et passe dans le fournisseur et tous les arguments nécessaires. Enfin, invoquer UIImage imageWithCGImage:imageRef afin de créer une UIImage instance.
OriginalL'auteur MoDJ