首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Image.Save(Stream,ImageFormat)抛出一个异常?

为什么Image.Save(Stream,ImageFormat)抛出一个异常?
EN

Stack Overflow用户
提问于 2010-11-13 18:47:10
回答 2查看 3.8K关注 0票数 5

我正在尝试将图像转换为图标。我的功能是:

代码语言:javascript
复制
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的编码器,还是我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-13 18:59:37

你猜对了: GDI+ only supports,一个ICON解码器。

您可能希望自己执行转换。在这种情况下,请参见http://www.codeproject.com/KB/GDI-plus/safeicon.aspx

票数 5
EN

Stack Overflow用户

发布于 2011-01-24 22:29:49

只需将图像转换为图标:

代码语言:javascript
复制
Icon myIcon = Icon.FromHandle(((Bitmap)myImage).GetHicon())

然后使用stream保存:

代码语言:javascript
复制
myIcon.Save(myStream);

向您致敬,凯特

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4172112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档