Je dois enregistrer l'objet bitmap chargé à partir du fichier image (.png, .jpeg, .bmp) et l'enregistrer sous forme d'icône (.ico) dans un fichier séparé.Comment enregistrer Bitmap en tant qu'icône?
Tout d'abord j'ai essayé sauver objet Bitmap dans un fichier avec l'icône ImageFormat:
using System.Drawing;
Bitmap bmp = (Bitmap)pictureBox1.Image;
bmp.Save(@"C:\icon.ico", Imaging.ImageFormat.Icon);
Celui-ci échoue, comme l'icône produit n'est pas dans un format approprié et il ne peut pas être utilisé comme une icône.
suivant était d'obtenir Hicon de Bitmap et l'enregistrer dans un fichier:
using System.Drawing;
using System.IO;
StreamWriter iconWriter = new StreamWriter(@"C:\icon.ico");
Icon ico = Icon.FromHandle(((Bitmap)pictureBox1.Image).GetHicon())
ico.Save(iconWriter.BaseStream);
iconWriter.Close();
iconWriter.Dispose();
Celui-ci ne fait pas le travail aussi. Bien que le fichier d'icônes soit correctement écrit, il n'a que 16 couleurs et une largeur et une hauteur limitées. J'aimerais pouvoir écrire des icônes avec une largeur et une hauteur personnalisées qui préserveraient les couleurs de l'image d'origine. Est-ce possible de réaliser en .NET?
Merci d'avance.
GetHicon() ne fait un travail merdique. Essayez ceci: http://www.codeproject.com/KB/cs/IconLib.aspx –
J'ai également utilisé ceci avec succès: http://www.codeproject.com/KB/GDI-plus/safeicon.aspx –