我正在尝试将图像转换为图标。我的功能是:
private Icon GenerateIcon(int width, int height)
{
using (Bitmap icon = _backingImage.GetThumbnailImage(width, height, () => false, System.IntPtr.Zero) as Bitmap)
using(MemoryStream imgStream = new MemoryStream())
{
icon.Save(imgStream, System.Drawing.Imaging.ImageFormat.Icon);
return new Icon(imgStream);
}
}但是当程序调用这个方法时,它抛出了一个ArgumentNullException("encoder"),我在这里调用了icon.Save。
我觉得这很奇怪,因为我没有传入编码器,我想让框架找出编码器应该是什么,这就是我传入ImageFormat的原因。
是没有ImageFormat.Icon的编码器,还是我做错了什么?
发布于 2010-11-13 18:59:37
你猜对了: GDI+ only supports,一个ICON解码器。
您可能希望自己执行转换。在这种情况下,请参见http://www.codeproject.com/KB/GDI-plus/safeicon.aspx。
发布于 2011-01-24 22:29:49
只需将图像转换为图标:
Icon myIcon = Icon.FromHandle(((Bitmap)myImage).GetHicon())然后使用stream保存:
myIcon.Save(myStream);向您致敬,凯特
https://stackoverflow.com/questions/4172112
复制相似问题