Couleur transparente

Signaler
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013
-
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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.
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013

Je veux bien utiliser une fonction de l'API mais éviter GDI+
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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.
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013

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?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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.
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013

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?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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.
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013

Comment puis-je te faire parvenir une petite illustration jpg de ce que je souhaiterais obtenir?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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.
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
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
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013

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?
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
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.
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013

Effectivement OpenGL, ce serait un marteau-pilon.
En tout cas merci pour ton aide.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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.
Messages postés
252
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
29 juin 2013

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é.