Comment gérer une couleur transparente ???

Signaler
Messages postés
62
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
15 octobre 2007
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Bonjour à tous et toutes,

Je suis en train d'essayer de reprendre une appli VB6 en C# et je suis confronté à un problème...

Comment simuler la proprioté maskcolor utiliser par VB6 qui permettait de définir une couleur transparente pour une bitmap ???

Merci de votre aide

4 réponses

Messages postés
51
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
27 octobre 2004
1
Salut, utilise la méthode MakeTransparent de la classe Image.
Messages postés
62
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
15 octobre 2007

Ok merci.
Pour info, il s'agit d'une méthode de la classe Bitmap.
Messages postés
51
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
27 octobre 2004
1
oups... tu as raison, j'ai cru que du fait que la classe Bitmap hérite de Image, MakeTransparent était à la base une méthode de Image...
En tout cas thx pour la rectification.
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
21
Merci , j'ai réussi à trouver comment faire. Seulement , j'ai un
problème mineur. C'est que, à la base mon gif fait 5Ko (le grand) et
celui que je met par dessus en fait 2Ko. Dès que, je lance
l'application, je me retrouve avec une image GIF de 35Ko (ca , a la
limite, on s'en fout). Mais le problème est que l'image du résultat
laisse apparaître des granulets (sur l'image des pixels) qui rend
l'image moins bien qu'au départ. Est ce que je peux résoudre ce
problème ?



Voici mon code :



Bitmap Map = new Bitmap(Image.FromFile("carte.gif"));

Bitmap Marker = new Bitmap(Image.FromFile("marker.gif"));

Marker.MakeTransparent(Color.White);

Graphics Gr_Map = Graphics.FromImage(Map);

int X_Map,Y_Map;

X_Map = (Map.Width/2)-(Marker.Width/2);

Y_Map = (Map.Height/2)-(Marker.Height/2);

Gr_Map.DrawImage(Marker,X_Map,Y_Map);

Gr_Map.Dispose();

Map.Save("Result.gif",System.Drawing.Imaging.ImageFormat.Gif);










Billou_13
Bask En Force