Enregistrer une icone en 24bits

shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 19 janv. 2011 à 11:35
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 23 janv. 2011 à 16:08
Bonjour a tous,

j'essaye actuellement de faire un petit programme qui récupère l'icone d'un exécutable pour ensuite l'enregistrer sous forme de fichier... Cependant le seul hic est que cela retourne une icone en 16 couleurs et non en 24bits :s

j'ai tenté de passer par un bitmap et de le converti en icone ensuite mais même problème, quelqu'un aurait t'il une solution

ci joint le code actuel:
                    Stream buffer = File.Create(txtIconPath.Text);
                    Icon icone = Icon.ExtractAssociatedIcon(txtExePath.Text);
                    Bitmap convert = new Bitmap(32, 32, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                    convert = icone.ToBitmap();

                    icone = Icon.FromHandle(convert.GetHicon());
                    icone.Save(buffer);

//autre essai avec cette possibilité mais il ne converti pas en ico, il garde sa comme un bitmap
                    //convert.Save(txtIconPath.Text, System.Drawing.Imaging.ImageFormat.Icon);


Merci d'avance

2 réponses

cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
20 janv. 2011 à 09:03
Bonjour,
tu trouveras peut-être des idications dans cet article:
http://www.codeproject.com/KB/cs/IconLib.aspx

Bon codage

louis
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
23 janv. 2011 à 16:08
Bonjour

je pense que le probleme vient de la méthode GetHicon()
Essaye ce code:
            
Icon icone = Icon.ExtractAssociatedIcon(@"c:\fichier.txt");
            Bitmap convert = new Bitmap(32, 32, System.Drawing.Imaging.PixelFormat.Format32bppRgb);
            convert = icone.ToBitmap();
            convert.Save(@"c:\test2.bmp", ImageFormat.Bmp);


Bob.
C# is amazing, enjoy it!
0
Rejoignez-nous