Как сохранить растровое изображение в виде значка? [Дубликат]

На этот вопрос уже есть ответ:

Как преобразовать изображение в иконку без потери прозрачности? 1 ответ

Мне нужно сохранить растровый объект, загруженный из файла изображения (.png, .jpeg, .bmp), и сохранить его как значок (.ico) в отдельный файл.

Сначала я попытался сохранить растровое изображение в файл с помощью Icon ImageFormat:

using System.Drawing;

Bitmap bmp = (Bitmap)pictureBox1.Image;
bmp.Save(@"C:\icon.ico", Imaging.ImageFormat.Icon);

Этот сбой, поскольку созданный значок имеет неправильный формат и его нельзя использовать в качестве значка.

Далее нужно было получить HIcon из Bitmap и сохранить его в файл:

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();

Этот тоже не справляется с работой. Хотя файл значков написан правильно, он имеет только 16 цветов и ограниченную ширину и высоту.

Я хотел бы иметь возможность писать значки с произвольной шириной и высотой, которые бы сохраняли цвета исходного изображения. Можно ли достичь в .NET?

Заранее спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос