inserer un bout d'image dans une image

jb_jb_fr

Membre confirmé
11 Septembre 2006
62
3
Marcoussis
Bonjour à tous.

Je tente de faire une chose que je ne maitrise pas vraiment.

J'ai une image de type TIFF que j'affiche dans une fenêtre dans laquel j'ai mis un style NSImageView.

Jusque la je n'ai pas de soucis. Je fais
NSImage *toto = [[NSImage alloc] imageNamed:"image"];
[imageView setImage:toto];

Mais maintenant, je voudrais prendre un morceau d'une autre image, que je colle dans l'image toto.
Comment je fais.
J'ai beau regardé les class NSImage, NSImagePrep, NSImageView, je n'arrive pas a voir :
- Comment prendre une zone dans une image
- Comment coller une image dans une image.
est-ce que les la method drawInRect peut me servir? J'ai l'impression que ca affiche un truc à l'écran, mais n'en suis pas sur.

Merci pour votre aide.

Jacques
 
Désolé pour les imperfections mais je ne maîtrise pas encore entièrement le sujet ! :

MAIS

quant il s'agit d'associer ou de faire intérargir des parties graphiques sur un controle, il faut utiliser les objets 'NSCell' qui sont inscrits dans les objets COcoa comme 'NSButton'. (ie: NSButtonCell).

pour moduler dynamiquement des effets graphiques en fonction d'évènement, il vaut mieux gérer les images par 'CoreImage' (donc une NSImage est le résultat d'un CIImage fabriqué par un CIFilter) . de cette manière, on peut imaginer qu'après avoir cliquer sur un bouton, un contrôle imageVIew effectue une transition CoreImage pour passer d'une image à une autre.
 
Houla j'ai pas tout compris :siffle: et je ne suis pas sur d'avoir été compris
Voila un petit dessin de ce que je veux faire

Nouvelle%20image%20%281%29.jpg



Avec NSCell, j'ai pas vu comment prendre un morceau d'image.
Je veux juste changer une partie d'image et pas toute l'image
De plus avec les methodes compositeToPoint, comment specifier l'image source (Image_B dans mon exemple)?
Dans mon idée, je voulais :
1) Charger l'image B
2) Creer une image C de la taille de la zone B
3) Copier dans cette nouvelle image C la zone B voulue
4) Coller dans l'image A, la nouvelle image C au coordonée x,y

- Les méthodes compositeToPoint ne renvoie pas de résultat (void)
- Dans la class NSCell j'ai pas vu comment copier une zone.
- Dans la class NSCell, j'ai pas vu comment spécifier une zone.

Ou alors :
- Je ne m'y prends pas du tout de la bonne manière (ce qui est tres fortement probable):rolleyes:
- Je n'ai rien compris à NSImage:heu:
- Je n'ai rien compris à NSCell :heu:

Pourriez vous être un peu plus précis dans vos explications.

Jacques
 
J'avoue que j'ai aussi trouvé la démarche pour y arriver un peu tordue, mais on s'y fait. :D
Surtout ne pas oublier le lock/unlock sinon ça ne marchera pas.
 
MERCI ntx :up:

J'ai essayer hier soir et ça marche du feu de Dieu.
Exactement ce que je voulais faire.

J'avoue que j'ai aussi trouvé la démarche pour y arriver un peu tordue, mais on s'y fait. :D
Surtout ne pas oublier le lock/unlock sinon ça ne marchera pas.

Oui, c'est ce truc de lock/unlock aussi qui m'a dérouté.
Comme tu dis, une fois que l'on a compris le truc, c'est génial.

Merci beaucoup. :zen:
Je vais pouvoir continuer mon programme

Jacques