【问题标题】:Why my image is null although it is loaded in the imagebox? [duplicate]为什么我的图像是空的,尽管它已加载到图像框中? [复制]
【发布时间】:2015-12-19 17:10:50
【问题描述】:
MemoryStream stream = new MemoryStream();
// coverImagePictureBox.Image.Save(coverImagePictureBox.ImageLocation, System.Drawing.Imaging.ImageFormat.Jpeg);    
coverImagePictureBox.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] pic = stream.ToArray();

NullReferenceException

我在表单中加载图像,但是当我调用 imagebox.image 时,尽管图像已正确加载到表单中,但它返回 null

这就是我加载图像的方式

OpenFileDialog dlg = new OpenFileDialog();
        dlg.Filter = "JPG Files(*.jpg|*.jpg|*.PNG Files(*.png|*.png|All Files(*.*)|*.*";
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            string picpath = dlg.FileName.ToString();
            textBox1.Text = picpath;
            coverImagePictureBox.ImageLocation = picpath;

【问题讨论】:

  • 当您在 Stack Overflow 上提问时,请不要将代码显示为图像。将代码作为文本复制到您的问题中,并附上错误消息。这样可以更轻松地搜索并更快地查看您的问题。当你得到一个 NullReferenceException 时,你应该看到什么是 null。
  • 显示您如何将图像加载到coverImagePictureBox的代码。
  • 请通过复制粘贴的方式发布stacktrace,而不是上传ti的截图。
  • 您两次告诉我们您已在表单中加载了图像。但是您尝试从图片框中保存图像。现在哪个??如果您确实在 picturebox.Image 属性中加载了图像,则代码可以正常工作。不是 Form 或 PictureBox 的 BackgroundOÍmage 属性!
  • 你保存图片不加载。

标签: c#


【解决方案1】:

应用程序告诉您有一个 NullReferenceException 指示您尝试操作的对象是 null。现在在您的代码中,唯一可以为 null 的是 PictureBox 的图像。

当然,您永远不会将图像分配给 PictureBox,当您访问它的图像时,不可避免地会引发 Null 引用异常。

所以,请仔细检查。另一件事可能是您实际上是在分配 BackgroundImage 但试图访问 Image。

【讨论】:

  • 编译器不告诉任何东西,异常发生在运行时。
  • @AlbertoMonteiro 你是对的。所以..你找到了我。最好停止你正在做的事情。你非常清楚自己在做什么。
  • 所以你让我停下来,为什么你不接受我在你的问题中的正确答案? stackoverflow.com/questions/34212090/…
猜你喜欢
  • 2019-11-02
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 2011-03-16
  • 2014-02-26
  • 1970-01-01
  • 2023-03-05
相关资源
最近更新 更多