Comment gérer une couleur transparente ???

shervy Messages postés 62 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 15 octobre 2007 - 30 juin 2003 à 18:10
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 25 févr. 2005 à 14:23
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

Zil0k Messages postés 51 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 octobre 2004 1
30 juin 2003 à 18:37
Salut, utilise la méthode MakeTransparent de la classe Image.
0
shervy Messages postés 62 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 15 octobre 2007
1 juil. 2003 à 10:32
Ok merci.
Pour info, il s'agit d'une méthode de la classe Bitmap.
0
Zil0k Messages postés 51 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 octobre 2004 1
1 juil. 2003 à 16:43
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.
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
25 févr. 2005 à 14:23
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
0
Rejoignez-nous