[résolu] Construire une image à partir de texte+image
LeChatNoir
Membre, Modérateur
Salut,
Je me posais une question à la con pour le jour de l'an :-) (au fait, bonne année à tous !) :
* comment, à partir d'une image et d'un texte (voire une Attributed String), je peux construire une seule NSImage.
Je m'explique :
J'ai une NSImage qui contient un icone,
Une NSString qui contient le texte de l'élément.
Lors d'un drag&Drop dans une outlineView, j'aimerai remplacer l'image du drag par une image à moi qui résulterai de la composition de l'image avec le texte accolé au bout.
Dans la méthode qui permet de mettre une image perso lors du drag, je connais l'icone, j'ai moyen de récup' le texte qui va bien mais :
* comment mettre les 2 dans un objet NSImage sachant que je veux mettre l'icone et le texte à coté et positionné au centre verticalement ?
Je le fait dans le DrawRect de la cellule de mon outline mais en le dessinant direct dans la vue.
J'aimerai faire la même chose mais que ca me mette ca dans une NSImage.
Y a moyen ?
a+
Je me posais une question à la con pour le jour de l'an :-) (au fait, bonne année à tous !) :
* comment, à partir d'une image et d'un texte (voire une Attributed String), je peux construire une seule NSImage.
Je m'explique :
J'ai une NSImage qui contient un icone,
Une NSString qui contient le texte de l'élément.
Lors d'un drag&Drop dans une outlineView, j'aimerai remplacer l'image du drag par une image à moi qui résulterai de la composition de l'image avec le texte accolé au bout.
Dans la méthode qui permet de mettre une image perso lors du drag, je connais l'icone, j'ai moyen de récup' le texte qui va bien mais :
* comment mettre les 2 dans un objet NSImage sachant que je veux mettre l'icone et le texte à coté et positionné au centre verticalement ?
Je le fait dans le DrawRect de la cellule de mon outline mais en le dessinant direct dans la vue.
J'aimerai faire la même chose mais que ca me mette ca dans une NSImage.
Y a moyen ?
a+
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu peux faire un truc du genre :
MiniImage est un nouveau NSImage.
Non non, ça fonctionne pas
En fait je considère mon NSImage comme une vue et je fais des draw dedans ?
Ca foncitonne ça ?
dataWithPDFInsideRect:
Returns PDF data that draws the region of the receiver within aRect.
- (NSData *)dataWithPDFInsideRect:(NSRect)aRect
Discussion
This data can be placed on an NSPasteboard, written to a file, or used to create an NSImage object.
Je ne pourrais le dire plus clairement donc, je me limite au copier/coller
En cocoa, tu ne dessines jamais dans une view, mais dans un graphiccontext, et ensuite le contenu de ce contexte peut etre appliqué à une view ou une image.
J'avais tenté le dataWithPDF avec succès mais 2 pb :
* ca choppe le fond (alors que je veux une image avec transparence lors du drag),
* quand l'item est sélectionné, ca choppe la couleur de sélection.
Bref, j'essayerai cette hitoire de faire des draw dans une NSImage.
Enfin je voulais dire dans un "graphic context que j'appliquerai à une image" pour être aussi précis que Renaud.
Mais cette histoire de graphic context, c'est transparent non ? On appelle les méthodes draw... des NSView la plupart du tps...
J'ai expérimenté et ca marche
A qques détails près (genre il faut régler la taille de la nouvelle image, la copier et autres subtilités que j'ai découvert sur les NSImage et autres représentations...).
Merci encore ! <br />