2010-01-21 2 views

Répondre

5

UIImage est juste une enveloppe ObjC de CGImage, ils sont donc les mêmes.

à partir du SDK doc:

Vous devriez éviter de créer des objets UIImage qui sont supérieures à 1024 x 1024 taille. Outre la grande quantité de mémoire qu'une telle image consommerait, vous risquez de rencontrer des problèmes lors de l'utilisation de l'image comme texture dans OpenGL ES ou lors du dessin de l'image sur une vue ou un calque. Cette restriction de taille ne s'applique pas si vous effectuez des manipulations basées sur le code, telles que le redimensionnement d'une image de taille supérieure à 1 024 x 1 024 pixels en l'attachant à un contexte graphique protégé par bitmap. En fait, vous devrez peut-être redimensionner une image de cette manière (ou la diviser en plusieurs petites images) afin de la dessiner sur l'une de vos vues.

Si vous avez une énorme image, vous pouvez essayer d'utiliser un UIWebView pour réduire la consommation de mémoire.


Le temps de charger une image comporte 2 parties: le temps de décompresser l'image (pertinentes pour choisir JPG ou PNG) et le temps pour rendre l'image.

pour décomprimer, je vous suggère un profil de la simple déclaration

[UIImage imageWithContentsOfFile:@"/path/to/your/image.jpg"]; 
4

Il est plus rapide pour l'iPhone pour charger PNGs que JPGs parce PNGs sont optimisés quand il est fourni dans votre application (bien que, non chargée à distance).

Une exception de l'iPhone d'Addison Wesley livre de recettes:..

« Xcode optimise automatiquement vos images PNG à l'aide de l'utilitaire pngcrush fourni avec le SDK (Vous trouverez le programme dans les dossiers de plate-forme iphoneos dans/Developer Run à partir de la ligne de commande avec le -iphoneswitch pour convertir les fichiers PNG standard en ceux au format iPhone.) Pour cette raison, utilisez les images PNG dans vos applications iPhone si possible comme format d'image préféré. "

En outre, PNG est un format sans perte et sont JPGs lossy. Apple a choisi ce format pour ces raisons.

-Kevin

+0

Oui je savais que sur l'optimisation des .png de Xcode mais qu'en est le cas lorsque vous devez charger png à partir de diverses sources (web, galerie photo). Ensuite, ils ne sont pas optimisés et cela peut être assez lent: -/ – CodeFlakes

+0

C'est surtout vrai que les photos chargées dynamiquement (web, etc.) ne sont pas optimisées en utilisant l'outil d'Apple. Cependant, c'est toujours le choix le plus judicieux, car vos images auront l'air impeccables (et seront encore assez petites pour conserver la bande passante du réseau). En général, j'ai eu beaucoup plus de chance avec PNG qu'avec JPG. –

+0

J'ai comparé cela et [les images Xcode étaient ** plus lentes **] (http://imageoptim.com/xcode.html) que les images PNG standard optimisées avec d'autres outils. La taille du fichier (E/S disque?) Était plus importante que byteswapping.J'ai seulement comparé le PNG au PNG, mais je suppose qu'un fichier JPEG significativement plus petit se chargerait aussi plus rapidement. – Kornel

Questions connexes