Affichage d'une portion d'image
La méthode draw de la classe UIImage dessine une image sur un contexte graphique. Parfait, mais comment faire pour ne dessiner qu'une partie de l'image ?
J'ai une UIImage contenant une police de caractères bitmaps, que je comptais pour utiliser pour dessiner des caractères sur l'écran. Mais je ne trouve pas la manière d'afficher juste une portion de l'image.
Y a-t-il une méthode pour transférer une portion d'images ? Avec un paramètre définissant le rectangle de pixels à afficher.
Dans le genre :
ou encore
EDIT :
J'ai vu qu'il y avait une méthode permettant de découper une portion d'image. Mais je préfère ne pas l'utiliser, ne voulant pas perdre de la place en dédoublant mes données bitmaps en mémoire.
J'ai une UIImage contenant une police de caractères bitmaps, que je comptais pour utiliser pour dessiner des caractères sur l'écran. Mais je ne trouve pas la manière d'afficher juste une portion de l'image.
Y a-t-il une méthode pour transférer une portion d'images ? Avec un paramètre définissant le rectangle de pixels à afficher.
Dans le genre :
<br />// draw image, rectangleOrigine, positionDestination<br />
ou encore
<br />// draw image, rectangeOrigine, rectangleDestination<br />
EDIT :
J'ai vu qu'il y avait une méthode permettant de découper une portion d'image. Mais je préfère ne pas l'utiliser, ne voulant pas perdre de la place en dédoublant mes données bitmaps en mémoire.
<br />CGImageRef CGImageCreateWithImageInRect (<br /> CGImageRef image,<br /> CGRect rect<br />);<br />
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Hélas, la méthode drawInRect de l'OS iPhone a été simplifiée, ne permettant plus de définir un rectangle d'origine pour l'affichage des pixels. C'est bien dommage. Snif..
comme cela :
Je vais peut être me pencher vers OpenGL. Il semble y avoir des fonctions sympathiques pour afficher des textures 2D.
Soit tu stockes autant d'images que de "petits éléments graphiques"
Soit tu utilises une texture, c'est-à -dire exactement ce que fait colorWithPatternImage:
A moins de pré-découper les images, mais alors je vais me retrouver avec quelques centaines de petites images (32x32 pixels). Pas facile à gérer, surtout en cas de modification d'une planche graphique.
Il reste encore la solution de découper les images à la volée, ce qui risque de ralentir considérablement le processeur. Surtout dans un jeu vidéo où l'écran est redessiné plusieurs dizaines de fois par seconde.
http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-part-6_25.html
Le template "OpenGL Application" du SDK et les exemples du site d'Apple (GLSprite, GLPaint et GLGravity) sont intéressants.
- animation à 60 images/s
- Manipulation de textures dans tous les sens
- Possibilité d'utiliser des textures compressées en mémoire !! (miam)
- Evolution possible vers la 3D
- Etc..
Bref, que du bon.. Même si c'est plus complexe à maà®triser que du CoreGraphics de base.