¿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 respuesta

Necesito 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

Respuestas a la pregunta(1)

Su respuesta a la pregunta