¿Cómo guardar Bitmap como icono? [duplicar
Esta pregunta ya tiene una respuesta aquí:
¿Cómo convertir una imagen en un icono sin perder transparencia? 1 respuestaNecesito guardar el objeto de mapa de bits cargado desde el archivo de imagen (.png, .jpeg, .bmp) y guardarlo como un ícono (.ico) en un archivo separado.
Primero intenté guardar el objeto de mapa de bits en un archivo con Icon ImageFormat:
using System.Drawing;
Bitmap bmp = (Bitmap)pictureBox1.Image;
bmp.Save(@"C:\icon.ico", Imaging.ImageFormat.Icon);
Este falla, ya que el icono producido no está en un formato adecuado y no se puede usar como un icono.
a siguiente fue obtener HIcon de Bitmap y guardarlo en un archivo:
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();
Este tampoco hace el trabajo. Aunque el archivo de icono está escrito correctamente, solo tiene 16 colores y un ancho y alto limitados.
Me gustaría poder escribir iconos con un ancho y una altura personalizados que preserven los colores de la imagen original. ¿Es posible lograr esto en .NET?
Gracias por adelantado