一般的格式之间可以用 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格式的文件是坏的,有人做过类似的测试没?怎么我生成为的是坏的?