Stocker beaucoup d'images dans une application
Bonjour à tous,
Je souhaiterai que mon application ne dépasse pas les 20mo mais mon problème est que mon application dispose de plus de 200 images de 200ko chacune donc dépasse largement.
Comment puis je compresser ses images afin quelles ne fassent que quelques ko?
Je sais que cela est possible car je connais une application qui le fait.
Je sais qu'elle utilise des nsdata pour stocker ses images mais des nsdata de très petites tailles alors que l'image a une grande résolution.
En espérant avoir était clair, sinon n'hésitez pas à demander .
Je souhaiterai que mon application ne dépasse pas les 20mo mais mon problème est que mon application dispose de plus de 200 images de 200ko chacune donc dépasse largement.
Comment puis je compresser ses images afin quelles ne fassent que quelques ko?
Je sais que cela est possible car je connais une application qui le fait.
Je sais qu'elle utilise des nsdata pour stocker ses images mais des nsdata de très petites tailles alors que l'image a une grande résolution.
En espérant avoir était clair, sinon n'hésitez pas à demander .
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si tes images sont au format .png essaye de les convertir en .jpg.
Si c'est nécessairement des .png, essaye de retirer la couche alpha.
Il est possible que l'application dont tu parles emploie un format d'image vectoriel, ce qui permet de créer des graphismes avec une occupation mémoire ridicule, et pas mal de contraintes techniques.
Montre-nous des exemples de tes images !
Et NSData n'a franchement pas grand chose à voir, NSData n'est qu'un conteneur pour une suite d'octets. Après, ce que cette suite d'octets signifie... C'est à l'entière liberté du développeur...
Voici un exemple d'une image à stocker :
http://flagpedia.net/data/flags/ultra/pt.png
Ici l'image est en png mais je la convertit en jpg, mais maintenant même en jpg la taille reste importante si j'ai 200 photos à stocker.
Donc clairement, à part la perte de qualité (compression plus importante) ou la baisse de résolution... Parce qu'en pratique, la vectorisation dont parle Draken, ce n'est pas exploitable sur des images complexes.
Accessoirement, c'est quoi l'intérêt d'avoir des drapeaux de 2560x1707 sur un iphone ou un ipad, qui ont tous les 2 une résolution bien inférieure ?
Le but est de voir tous les détails du drapeau, bien sur certains ont plus d'intérêts que d'autres.
Oui, moi aussi je marche sur l'eau, si si...
Quelle application ?
C'est "Flag Atlas".
Le Canada juste un fond très simple et une image bitmap collée par dessus (la feuille d'étable).
Tu peux réduire l'occupation mémoire de ton image pt.png en codant à part le château et en le superposant sur le fond (la même image est utilisée 7 fois dans le blason). Idem pour le bouclier (présent 5 fois sur le blason).
- Pourquoi par exemple le drapeau du Paraguay lui n'est pas en jpg alors qu'il est détaillé? D'ailleurs même les drapeaux simple ont une très bonne résolution (on le remarque quand on zoom) alors qu'ils sont en html est ce normal?
- Dans son application il y a un fichier data.plist dans lequel il répertorie toutes les informations sur le pays, ma question est à quoi correspond la clé "flagbin" qui est de type NSData?
- Le fichier par exemple "Croatia.html.bz" ne corresponderait-il pas aux informations wikipédia du pays?
En tous cas merci à vous deux pour votre aide er désolé pour toutes ses questions, ça m'intrigue beaucoup de comprendre.
Quelques infos sur le drapeau de Wiki :
http://fr.wikipedia.org/wiki/Fichier:Flag_of_Croatia.svg
Quelques infos sur le format SVG :
http://fr.wikipedia.org/wiki/Scalable_Vector_Graphics
Bonjour,
Je me pose exactement cette même question, en effet, pour une application qui affiche des articles avec plusieurs photos, et ceux disponible en off-Line, comment pourrais-t-on procéder pour stocker en local les photos sans que l'application pèse une tonne.
Le dernier post date de 2011 donc je me dit qu'il y a peut être des libs qui ont été dev par des croqueurs de pomme fou !!!
- SDWebImage
- FastImageCache
Mon idée aurai été de mettre tout ça en cache à la première/chaque connexion et quand l'application est en off-line, ce servir du cache pour afficher les image mais je sais pas si cela répondrai à la problématique.