Comment effacer une image ?
fouf
Membre
Bon, la question est dans le titre.
Je voudrais remplir un NSBezierPath avec une NSImage. Pour cela, je crée un premier masque qui correspond à mon path, puis un second qui correspond à mon image, je les superpose grace à NSCompositeSourceIn pour avoir le "vrai" masque de l'image et ensuite, je dessine l'image avec le masque dans une image en cache.
J'ai donc une NSImage de grande taille (le cache) que je souhaiterais ne pas avoir à détruire et à recréer à chaque fois que le bezier path change, mais que je doit quand même effacer (la vider de tous ses pixels) avant de pouvoir redessiner par dessus. J'ai cherché mais je n'ai pas trouvé comment faire ; si vous pouviez m'aider, ca serait génial
Je voudrais remplir un NSBezierPath avec une NSImage. Pour cela, je crée un premier masque qui correspond à mon path, puis un second qui correspond à mon image, je les superpose grace à NSCompositeSourceIn pour avoir le "vrai" masque de l'image et ensuite, je dessine l'image avec le masque dans une image en cache.
J'ai donc une NSImage de grande taille (le cache) que je souhaiterais ne pas avoir à détruire et à recréer à chaque fois que le bezier path change, mais que je doit quand même effacer (la vider de tous ses pixels) avant de pouvoir redessiner par dessus. J'ai cherché mais je n'ai pas trouvé comment faire ; si vous pouviez m'aider, ca serait génial
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Non, je ne peux pas faire ca car le fond de mon image n'est pas blanc mais transparent et malheureusment, cela ne marche pas lorsque j'utilise [NSColor clearColor].
Bon, sinon, je vais essayer avec setColor:atX:y: de NSBitmapImageRep, on va bien voir ce que ca fait
[edit]
Non, ca ne marche pas non plus a premiere vu car je n'ai pas de NSBitmapImageRep a disposition ...
La grosse artillerie qui devrait marcher:
- Tu crées une NSBitmapImageRep
- Tu l'ajoutes à ta NSImage par - addRepresentation:
Pour effacer l'image, tu effaces toi-même la bitmap renvoyée par la méthode -data de NSBitmapImageRep, en écrivant zéro partout (ou juste sur l'octet de la couche alpha, mais c'est plus compliqué et moins rapide à mon avis).
Bref, y'a peut-être plus simple.
C'est cela que tu veux faire ?
[Fichier joint supprimé par l'administrateur]