Couleur transparente

cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013 - 27 juin 2013 à 16:19
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013 - 29 juin 2013 à 11:45
Bonjour à tous,
Y aurait-il un moyen simple et sans passer par GDI+ de dessiner sur une PictureBox une pastille (cercle) de couleur transparente?
Merci de votre aide,
Jacques13

16 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 juin 2013 à 18:10
Bonjour,
Tu ne pourras de toutes manières éviter d'utiliser une fonction de l'Api de Windows pour ce faire.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013
27 juin 2013 à 18:13
Je veux bien utiliser une fonction de l'API mais éviter GDI+
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 juin 2013 à 18:54
Ben === >> reste à définir ce que tu entends exactement faire !
Si, par exemple, tu entends faire comme un "trou" dans ta picturebox, il te faudra utiliser un grand lot de fonctions de l'Api de Windows et ce ne sera pas à la portée d'un développeur non aguerri !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013
27 juin 2013 à 19:12
Pas de trou, simplement dessiner une pastille sur une PictureBox qui vient recouvrir en transparence un dessin déjà effectué.
Comment faire pour te montrer un exemple?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 juin 2013 à 07:07
dessiner une pastille sur une PictureBox qui vient recouvrir en transparence un dessin déjà effectué

Mais ... Il te suffit dans ce cas de mettre dans ta picturebox (puisqu'elle est également un conteneur) un .gif ou un .ico à couleur transparente

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013
28 juin 2013 à 07:45
Oui, ça pourrait être une solution.
Il me semble pourtant avoir vu il y a quelques années un type de couleur qui autorisait une certaine forme de transparence...!?
Comment puis-je te faire parvenir une petite illustration jpg de ce que je souhaiterais obtenir?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 juin 2013 à 07:47
un "type de couleur" qui autorisait une certaine forme de transparence n'existe pas.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 juin 2013 à 07:52
Je commence par ailleurs à me demander si les termes que tu emploies sont les bons.
Qu'est pour toi la transparence ? On ne voit pas ce qui est transparent. On ne voit que ce qui est derrière ce qui est transparent.
Ainsi donc : ta pastille transparente serait totalement invisible, mais présente.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013
28 juin 2013 à 07:54
Comment puis-je te faire parvenir une petite illustration jpg de ce que je souhaiterais obtenir?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 juin 2013 à 07:56
Je n'en vois pas la nécessité ! Les mots existent pour expliquer ce que tu veux et ils doivent suffire.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
29 juin 2013 à 09:55
Bonjour Jacque13,

(Ne connaissant ton niveau je fais un rappel global de la notion de transparence d'image)

Lorsque l'on commence a s’intéresser a la transparence on doit déjà savoir comment sont géré les formats et les couleurs des images.
Gestion des couleurs
Formats

Ensuite ces tuto lu , le format de l'image et son canal Alpha sont donc indispensable. ( a gérer avec GIMP )
Le format PNG est a mon avis alors le + approprié. Tu pourra ainsi avoir un dégradé de transparence.
pour une image 32 bits : Avec une valeur alpha à zéro, nous sommes en présence d'un pixel totalement transparent.
A 255 il sera opaque.

ensuite si tu ne connais pas par avance ton canal alpha, je te met un lien déjà abordé sur le site.
Modifier le canal alpha

Il te resterait donc a superposer plusieurs picturebox ce que je n ai jamais essayé.
Une piste

J’espère que tu pourra ainsi résoudre ton pb, sachant qu'il n y a que 2 solutions:
- 1 Image ou tu intègre toutes les transformations pixel par pixel
- plusieurs images superposées avec intégration de la transparence, en jouant avec les notions de premier et arrière plan.

En sus voici ce lien
Creer-une-form-transparent-VB-net
0
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013
29 juin 2013 à 10:25
Bonjour Phil,
Merci de t'intéresser à mon problème.
J'ai l'habitude de gérer les transparences d'objet par l'intermédiaire de la bibliothèque GDI+.
La manipulation du canal alpha ne pose pas de difficulté.
Là, je suis dans un cas différent où je ne peux pas utiliser cette bibliothèque et dois me cantonner à celle de GDI.
Il y a quelques années j'avais trouvé une manip concernant la transparence que je n'arrive plus à reproduire.
Extrait simplifié du code VB6:
  Affi.FillColor = coul& / 1000 'divisé par 1000 pour estomper la couleur
  Res& = Polygon(Affi.hDC, lpPoints(0), ino&)

Avec cette méthode (ne fonctionnant que pour quelques valeurs bien précises de coul&), j'arrivais à obtenir des polygones colorés qui ne masquaient que légérement les objets dessinés en-dessous!
J'en ai donc déduit (peut-être à tort) que, d'une façon générale, en GDI les aplats étaient opaques sauf pour certaines valeurs de couleur affectées au FillColor.
Qu'en penses-tu?
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
29 juin 2013 à 10:42
Re Jacques13,
Je n'avais pas vu que tu avais posté en VB6, ce qui ne me permettra pas de t'aider +, la bibliotheque GDI étant pour moi dépassé en terme de vélocitée.
Cependant il me semble que j'arrivais a gérer des transparences par l’intermédiaire d'opengl avec VB6.
Mais c'est peut être utiliser de l'artillerie lourde pour tuer une mouche.
A moins que t'on application soit très orienté graphisme.
0
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013
29 juin 2013 à 10:46
Effectivement OpenGL, ce serait un marteau-pilon.
En tout cas merci pour ton aide.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 juin 2013 à 11:26
qui ne masquaient que légérement les objets dessinés en-dessous!

Voilà bien là la raison de ma demande de précision en ce qui concernait le mot "transparence" !
Ta phrase mise en citation laisse en effet entendre qu'il ne s'agit pas de tranparence, mais de translucidité (ce qui n'est pas la même chose !).
Qu'en est-il finalement ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013
29 juin 2013 à 11:45
C'est vrai, là il s'agit bien de translucidité (la transparence absolue n'aurait vraiment aucun intérêt).
Ceci dit, je suis un âne bâté. J'ai finalement re-trouvé ma précédente solution, il suffit de jouer sur la propriété du DrawMode! Le code simplifié devient ainsi:
  Affi.DrawMode = 7
  Affi.FillStyle = 0
  Affi.ForeColor = vbRed
  Affi.FillColor = vbBlue
  Affi.Circle (300, 300), 17

Le seul problème est que le choix des couleurs résultantes (sur un fond blanc) est bien maigre: jaune, bleu pâle, mauve...
En tout cas, merci à tout ceux qui m'ont aidé.
0
Rejoignez-nous