Versions images application universelle

Bonjour à  tous image/smile.png' class='bbc_emoticon' alt=':)' />



Je suis actuellement en train de réaliser une application universelle pour la première fois et je fais des recherches sur les versions des images de l'application. J'ai lu la documentation officielle (notamment: http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreensInViews/SupportingHiResScreensInViews.html#//apple_ref/doc/uid/TP40010156-CH15-SW1) et parcouru le forum mais j'ai encore un doute.



Pour moi jusqu'à  présent les choses étaient assez simples. Application iPhone => même taille physique d'écran (plus maintenant avec l'écran de l'iPhone 5) => image non-retina (100x100) & image retina (200x200 pour gérer le double de pixels).



Avec l'iPad à  gérer (nouvelle taille d'écran physique et nouvelles résolutions) j'ai l'impression de me mélanger un peu entre la taille "physique" (points) de la zone et la résolution (pixels).



Pour prendre un exemple simple, imaginons un .xib qui contient une UIImageView de 100x100. Pour avoir une qualité optimale sur tous les devices, est-ce suffisant de faire 2 images (monImage.png / monImage@2x.png, respectivement 100x100 et 200x200) ou dois-je faire 4 images (monImage~iphone.png, monImage~ipad.png, monImage@2x~iphone.png, monImage@2x~ipad.png) ?



Pour cette zone physique, un iPhone non retina peut afficher 100 pixels, un iPhone retina peut en afficher 200. Quid d'un iPad non retina qui a une résolution de 768x1024 (768/320 = 2,4 => Une image monImage~ipad.png de 240x240?). Je crois avoir vu peu d'applications ayant 4 versions de chaque image (mais j'ai aussi vu peu d'applications universelles).



Je vous remercie, comme toujours, de votre grande aide image/wink.png' class='bbc_emoticon' alt=';)' />

Réponses

  • CéroceCéroce Membre, Modérateur
    février 2013 modifié #2
    'MrT' a écrit:


    est-ce suffisant de faire 2 images (monImage.png / monImage@2x.png, respectivement 100x100 et 200x200)


    Oui.



    En fait, c'est très simple. Sur un écran non-Retina, un point correspond à  un pixel.

    Sur un écran Retina, un point correspond à  deux pixels.



    Si tu utilises une UIImageView qui mesure 100x100 points, alors elle n'aura pas les même dimensions physiques (en cm) sur un iPad et un iPhone.
  • LarmeLarme Membre
    février 2013 modifié #3
    'Céroce' a écrit:
    En fait, c'est très simple. Sur un écran non-Retina, un point correspond à  un pixel.

    Sur un écran Retina, un point correspond à  deux pixels.


    Deux ou quatre pixels ? Vu que tu augmentes sur X, mais sur Y aussi...
  • CéroceCéroce Membre, Modérateur
    Oui, j'aurais dû préciser: une longueur d'un point correspond à  une longueur de deux pixels.
  • AliGatorAliGator Membre, Modérateur
  • Merci à  tous pour vos réponses (@Aligator: j'ai regardé la vidéo qui était vraiment très intéressante et ça donne envie d'assister aux sessions sur Paris).



    Si cette fameuse UIImageView de 100x100 points n'utilise pas l'autoresize en largeur/hauteur, il faut bien 2 versions de l'image (mêmes dimensions sur iPhone/iPad, il faut donc uniquement les versions retina/non-retina). Cependant si cette UIImageView utilise l'autoresize en largeur/hauteur, il faudra bien des versions supplémentaires de l'image non?
  • CéroceCéroce Membre, Modérateur
    Non, il faut une seule version de l'image avec la taille maximale qu'elle puisse avoir. Sur l'image view, tu utiliseras le contentMode ScaleAspectFill.



    Peux-tu nous dire ce que tu cherches à  faire, parce que là , je sens bien le plan "j'utilise une image en fond d'écran".
  • Non ce n'est pas pour un cas d'image en fond d'écran. C'est une question assez générale pour toutes les applications universelles. Dans celle que je réalise actuellement, c'est pour avoir la meilleure qualité d'image possible sur tous les devices (c'est l'objectif pour tout le monde j'imagine) sans torturer les "anciens" devices avec du resize.



    Sur l'application j'ai des plans à  afficher, des pictogrammes etc. Ces images sont téléchargées d'un serveur et j'aimerais fournir à  chaque device, l'image dans la bonne résolution (génération de miniatures côté serveur).
Connectez-vous ou Inscrivez-vous pour répondre.