|
Changer la couleur de pixel non contigus |
Started by contact, Mar., 27 2006 2:47 AM - 9 replies |
| |
| | | |
|
| |
Posted on March, 27 2006 - 2:47 AM |
Bonjour. Je cherche le moyen de changer la couleur de tous les pixels d'une même couleur dans une image (un genre de dRemplissage mais sur des pixels pas forcément contigus). Merci de votre aide. |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 12:34 PM |
Pour obtenir un résultat presque instantané, il faut utiliser l'API.
- Il faut passer le DC du contrôle contenant l'image, ou celui correspondant au bitmap. - Ensuite on créé un DC compatible : CreateCompatibleDC - Puis un DIB : CreateDIBSection - On sélectionne le DIB dans le DC compatible : SelectObject - On copie le DC source dans le DC destination : BitBlt - On récupère un pointeur sur le DIB : GetObject - On fait une boucle pour lire la couleur des pixels et remplacer ceux qui correspondent - Puis on copie le DC destination dans le DC source : BitBlt - Enfin on libère les ressources allouées : DeleteDC, DeleteObject
Patrice Terrier - Consultant Tel +33(0)476 981 673 pterrier@zapsolution.com www.zapsolution.com |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 5:14 PM |
Merci pour votre réponse mais je n'ai jamais utilisé d'API et ne comprends docn pas grand chose à tout ça... (DC ? DIB ?) Vous serait-il possible de m'éclairer avec quelques lignes de codes Windev ? Merci beaucoup, Cyril. |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 9:16 PM |
Regardez SourisPosX et SourisPosY ainsi que dPixelCouleur et dPoint dans l'aide.
et faites une boucle de lecture correspondant au dimensions x et y de votre image.
Mais ce sera 100 fois plus long qu'en utilisant l'API DIB... |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 10:41 PM |
J'ai déjà fait ce type d'essai et, effectivement, c'est trop long. Je suis très intéressé pour utiliser l'API mais je ne sais pas faire, c'est tout. Alors, si vous aviez quelques minutes à perdre en m'expliquant un peu plus comment on met ça en oeuvre dans Windev, je suis preneur...
Cordialement, Cyril. |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 10:41 PM |
Je suis un inconditionnel de M. TERRIER. Je suis ce post et je comptais bien trouver la procédure avec les différentes APIs et mince, il ne veut pas les mettre Dommage ! |
| |
| |
| | | |
|
| | |
| |
Posted on March, 28 2006 - 8:32 AM |
Comme WinDev ne permet pas, à ma connaissance, de manipuler des pointeurs. La seule solution pour obtenir le résultat escompté, c'est d'écrire une DLL spécifique, ou de faire l'acquisition d'un contrôle graphique commercial...
Note: si quelqu'un sait comment manipuler des pointeurs avec WinDev, alors je veux bien écrire la fonction gratuitement
Patrice Terrier - Consultant Tel +33(0)476 981 673 pterrier@zapsolution.com www.zapsolution.com |
| |
| |
| | | |
|
| | |
| |
Posted on March, 28 2006 - 4:25 PM |
Bonjour,
Je suis loin d'être experte pour manipuler des pointeurs et ne l'ai pas vraiment utilisé, mais n'est-ce pas ce que l'aide propose sous la fonction : Transfert".
Cordialement.
"Patrice Terrier" <pterrier@zapsolution.com> a écrit dans le message de news:4428663a@news.pcsoft.fr...
Comme WinDev ne permet pas, à ma connaissance, de manipuler des pointeurs. La seule solution pour obtenir le résultat escompté, c'est d'écrire une
DLL spécifique, ou de faire l'acquisition d'un contrôle graphique commercial...
Note: si quelqu'un sait comment manipuler des pointeurs avec WinDev, alors
je veux bien écrire la fonction gratuitement
|
| |
| |
| | | |
|
| | |
| |
Posted on March, 28 2006 - 6:20 PM |
Juliane--
La fonction WinDev "Transfert" est une encapsulation de l'API "MoveMemory" qui permet de déplacer un bloc mémoire d'un endroit à un autre.
C'est très utile, mais çà ne remplace pas les DWORD PTR. |
| |
| |
| | | |
|
| | |
| |
Posted on March, 28 2006 - 8:28 PM |
Bonjour je viens de lire "WinDev ne permet pas, à ma connaissance, de manipuler des pointeurs." que veut tu dire exactement car j'utilise les pointeurs avec des api et cela fonctionne
"Patrice Terrier" <pterrier@zapsolution.com> a écrit dans le message de news: 4428663a@news.pcsoft.fr...
Comme WinDev ne permet pas, à ma connaissance, de manipuler des pointeurs. La seule solution pour obtenir le résultat escompté, c'est d'écrire une DLL spécifique, ou de faire l'acquisition d'un contrôle graphique commercial... Note: si quelqu'un sait comment manipuler des pointeurs avec WinDev, alors je veux bien écrire la fonction gratuitement Patrice Terrier - Consultant Tel +33(0)476 981 673 pterrier@zapsolution.com www.zapsolution.com |
| |
| |
| | | |
|
| | | | |
| | |
|