Mat*_*len 5 c# icons encoder .net-4.0
我正在尝试将图像转换为图标。我的功能是:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
但是当程序调用该方法时,它会抛出一个ArgumentNullException("encoder")我正在调用的地方icon.Save。
我觉得这很奇怪,因为我没有传入编码器,我希望框架弄清楚编码器应该是什么,这就是我传入ImageFormat.
是没有任何编码器ImageFormat.Icon,还是我做错了什么?
你猜对了正确的:GDI +只支持一个ICON 解码器。
您可能希望自己执行转换。在这种情况下,请参阅http://www.codeproject.com/KB/GDI-plus/safeicon.aspx。
只需将图像转换为图标:
Icon myIcon = Icon.FromHandle(((Bitmap)myImage).GetHicon())
Run Code Online (Sandbox Code Playgroud)
然后使用流保存它:
myIcon.Save(myStream);
Run Code Online (Sandbox Code Playgroud)
问候, 凯特