Я немного смущен тем, как С# сохраняет растровые изображения. В настоящее время я использую этот оператор для сохранения растрового изображения (практически) в любом расширении (.ico, .dds и т. д.).
Bitmap.Save(FileName);
Это на самом деле работает для любого расширения, которое я выбираю, но у меня есть сомнения, что оно сохраняется в правильном формате. Причина указанных сомнений в том, что я нашел здесь другую статью, Как сохранить растровое изображение как значок?, что выглядит так:
// Create a Bitmap object from an image file.
Bitmap bmp = new Bitmap(sFn);
// Get an Hicon for myBitmap.
IntPtr Hicon = bmp.GetHicon();
// Create a new icon from the handle.
Icon newIcon = Icon.FromHandle(Hicon);
//Write Icon to File Stream
System.IO.FileStream fs = new System.IO.FileStream(destFileName, System.IO.FileMode.OpenOrCreate);
newIcon.Save(fs);
Что, очевидно, отличается. Итак два вопроса:
- Как может/работает первый подход, если второй является «правильным» способом?
- Нужно ли мне настраивать свойства сохранения для каждого отдельного расширения, которое я хочу поддерживать, или первого метода достаточно для любого расширения?