Как сохранить растровое изображение в виде значка? [Дубликат]
На этот вопрос уже есть ответ:
Как преобразовать изображение в иконку без потери прозрачности? 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?
Заранее спасибо