图片转换至ico出现的问题

一般的格式之间可以用 image.Save的方法转换格式 ,使用ImageFormat参数, 不过从一般格式转换到ico的话就不行了,使用ImageFormatIcon试了一下,结果是png.测试如下:

Image i = Image.FromFile("D:\\TMP\\1.ico");
            ImageFormat f = i.RawFormat;
            if (f.Equals(ImageFormat.Bmp))
                MessageBox.Show("bmp");
            if (f.Equals(ImageFormat.Jpeg))
                MessageBox.Show("jpg");
            if (f.Equals(ImageFormat.Png))
                MessageBox.Show("png");
            if (f.Equals(ImageFormat.Gif))
                MessageBox.Show("gif");
            if (f.Equals(ImageFormat.Icon))
                MessageBox.Show("ico");

结果是弹出 png.

使用Icon icon = Icon.FromHandle(iconBm.GetHicon());网上都是这么说的,给出测试代码:

Icon ico = Icon.FromHandle(bmp.GetHicon());
SaveFileDialog sa
= new SaveFileDialog();
sa.ShowDialog();
Stream s
= sa.OpenFile();
ico.Save(s);

我用jpg文件做测试,生成800x600 . 32x32的jpg和ico

jpg格式的缩略图可以打开,但是ico格式的文件是坏的,有人做过类似的测试没?怎么我生成为的是坏的?

原文地址:https://www.cnblogs.com/asight/p/1848164.html