charger automatiquement une image
macvelotte
Membre
Chapitre 13 de "Cocoa par la pratique" ...
Ayant défini un rectangle avec la souris, on charge une vue dans ce rectangle ;le code est :
path = [openPanel filename];
image = [[NSImage alloc] initWithContentsOfFile:path];
[stretchView setImage:image];
Je voudrais charger automatiquement une image dans un rectangle prédéfini (je sais définir le rectangle).
Comment appeler "image.jpg" par exemple ?
Ayant défini un rectangle avec la souris, on charge une vue dans ce rectangle ;le code est :
path = [openPanel filename];
image = [[NSImage alloc] initWithContentsOfFile:path];
[stretchView setImage:image];
Je voudrais charger automatiquement une image dans un rectangle prédéfini (je sais définir le rectangle).
Comment appeler "image.jpg" par exemple ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le glisser-déposer est refusé, et path=chemin d'accès est inopérant !
En somme, je cherche à charger ce qui sous les OS précédents était une ressource PICT.
Dans IB, tu cliques sur l'onglet Images de la fenêtre de ton fichier nib et tu déposes l'image voulu sur le NSImageView.
Sinon par programmation:
Il me faut encore relire les obscures documentations !!!
Merci pour les réponses.
Mais je n'ai pas encore de solution : mais ça viendra ...
Mais je voudrais dessiner sur cette image (en l'occurence un planisphère sur lequel je veux mettr équateur, tropiques, cercles polaires etc ...
Quelquechose m'intriqgue :
- setLineWidth : c'est la dernière valeur qui s'impose ; comment faire ds traits de largeurs différentes ?
[[NSColor xxxxColor] set] : il ne semble pas possible de faire des traits de couleurs différentes ???
je change la couleur, mais c'est le premier choix qui prévaut ...
Où est le truc ?
Bonsoir, j'ai suivi ce topic car il répond à la question que je me posais aussi : je parviens à charger une image dans un NSImageView, aussi bien par glisser-déposer que par programmation. Par contre, si je mets une sous-classe de NSImageView dans ma fenêtre, le glisser déposer ne marche plus et le code, je ne sais pas où le mettre : si je le mets dans la méthode drawRect j'ai un message "MyImageView may not respond to setImage". Or je préfère utiliser une sous classe de NSImageView, car j'ai besoin d'utiliser la méthode mouseDown.
Où est l'erreur ??
Merci de vos lumières
Vérifie que dans le fichier MyImageView.h tu as bien:
@interface MyImageView : NSImageView
car visiblement le compilo ne reconnaà®t pas ta classe comme dérivant de NSImageView. Vérifie aussi dans IB, que tu as bien sélectionné MyImageView dans le panneau info->Custom class
Donc, tu fixes ta couleur, tu dessines une ligne, tu fixes une autre couleur, tu dessines une ligne et ainsi de suite.
Jette un ½il sur NSBezierPathÂ
Je comprends pas bien, tu veux dessiner une autre image par dessus celle affichée par ImageView ?
Ok, j'ai pigéÂ
Comme tu est parti d'un customView, le NSImageView est initialisé avec ces paramètres par défauts, donc pas d'image d'affiché et pas de cadre non plus. Donc il suffit de faire comme vu plus haut:
Autre solution, dans IB tu pars d'un NSImageView et même chose, tu sélectionnes MyImageView dans Custom Class et voilà  ::)
Lors du chargement d'un nib, tous les objet contenus dans le nib sont créés, puis, la méthode awakeFromNib est appelée pour chacun de ces objets. Cela signifie que si un objet contient des outlets ceux-ci sont correctement initialisés lors de l'appel à awakeFromNib, ce qui n'est pas le cas dans les méthodes initWithframe ou initWithCoder !
Pour ton ImageView, tu ajoutes la méthode awakeFromNib dans MyImageView.m
Merci en tous cas pour ta patience !
Au départ, chapitre 13 de Cocoa par la pratique.
Modification : j'ai placé une image en fond de fenêtre, par glisser déposer.
Je veux dessiner des lignes sur cette image.
Je place sur l'image une CustomView ; quelle doit être cette CustomView (StretchView,NSImageView ...) pour pouvoir dessiner des linges de couleurs différentes.
Avec StrechView, ça ne marche pas : la couleur est fixe !!!
Cette exemple devrait te convenir:Introduction to Cocoa Graphics
Maintenant, le plus simple serait que tu nous montres le code de ta classe customView.
Je ne fais pas de commentaire ...