首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArgumentNullException未处理

ArgumentNullException未处理
EN

Stack Overflow用户
提问于 2012-02-29 02:00:57
回答 3查看 843关注 0票数 0

这是将图像保存到数据库的代码的一部分

代码语言:javascript
复制
Bitmap TempImage = new Bitmap(@cwd + "\\Final.jpg", true);
        pictureBox.Image = new Bitmap(TempImage);//pictureBox.Image = Image.FromFile(imgName[0]);
        TempImage.Dispose();
        string name = textBox1.Text + ".jpg";
        MemoryStream mstr = new MemoryStream();
        pictureBox.Image.Save(mstr, pictureBox.Image.RawFormat);
        byte[] arrImage = mstr.GetBuffer();

然后,程序在pictureBox.Image.Save(mstr, pictureBox.Image.RawFormat);处停止,说ArgumentNullException was unhandled, Value cannot be null. Parameter name: encoder

会有什么问题呢?

EN

回答 3

Stack Overflow用户

发布于 2012-02-29 02:08:23

我要写一个WAG,说你不应该处理你以后可能会弄乱的东西。

代码语言:javascript
复制
using( Bitmap TempImage = new Bitmap(@cwd + "\\Final.jpg", true))
{
    pictureBox.Image = TempImage // why do => new Bitmap(TempImage); here?
    string name = textBox1.Text + ".jpg";
    MemoryStream mstr = new MemoryStream();
    pictureBox.Image.Save(mstr, pictureBox.Image.RawFormat);
    byte[] arrImage = mstr.GetBuffer();    
}
// after this point, you'd better not be using pictureBox either!

另外,不确定为什么要创建两个位图...或者使用"pictureBox“来保存图像...坦率地说,我看这段代码越多,我就越困惑。也许你应该问一个问题,比如

我正在尝试foo一个图像,这样我就可以阻止了。我该怎么做呢?

完全跳过这段代码。

票数 4
EN

Stack Overflow用户

发布于 2012-02-29 02:11:15

Save()的实现将对您作为第二个参数(pictureBox.Image.RawFormat)传递的格式调用FindEncoder(),这将返回null。

票数 1
EN

Stack Overflow用户

发布于 2012-02-29 02:15:58

只需使用

代码语言:javascript
复制
pictureBox1.Image =
        Bitmap.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9487255

复制
相关文章

相似问题

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