1

J'ai une fonction simple qui prend un bitmap, et convertit le bitmap en un format ICON. Voici la fonction. (J'ai placé des valeurs littérales en place des variables)Conversion d'image de Bitmap en icône ne semble pas fonctionner

Bitmap tempBmp = new Bitmap(@"C:\temp\mypicture.jpeg"); 
    Bitmap bmp = new Bitmap(tempBmp, 16, 16); 
    bmp.Save("@C:\temp\mypicture2.ico", ImageFormat.Icon) 

Il ne semble pas convertir correctement ... ou alors je pense. Après la conversion de l'image, certains navigateurs ne reconnectent pas l'image comme un véritable "ICON", et même Visual Studio 2008 ne reconigule pas l'image en tant qu'icône après sa conversion en un format d'icône. Par exemple, j'allais définir la propriété Icon pour mon application Win32 avec l'icône que je viens de convertir. J'ouvre la boîte de dialogue et sélectionne l'icône que je viens de convertir et j'obtiens l'erreur suivante.

- "L'image 'Argument' doit être une image pouvant être utilisée comme icône." J'ai parcouru le web et j'ai rencontré un code compliqué où les gens prennent le temps de convertir manuellement le bitmap en différents formats, mais je pense que le code ci-dessus devrait fonctionner, et que le framework .NET s'en chargerait conversion.

Répondre

2

J'ai testé le code suivant et cela a fonctionné mais les résultats n'étaient pas excellents. Rappelez-vous qu'une icône a une palette limitée et vous perdrez probablement quelques informations de couleur.

Bitmap b = new Bitmap(@"d:\file.jpg"); 
    Icon i = Icon.FromHandle(b.GetHicon()); 
    i.Save(File.Open(@"d:\file.ico", FileMode.OpenOrCreate, FileAccess.Write));