【问题标题】:How to tackle the Out Of Memory Exception Error?如何解决内存不足异常错误?
【发布时间】:2013-10-13 19:16:28
【问题描述】:

我创建了一个按钮,它可以上传系统中的所有图片文件以及 doc 文件和 PDF 文件。 以下是以下代码:

        if (dlg.ShowDialog() == DialogResult.OK)
        {

            pictureBox2.Image = Image.FromFile(dlg.FileName);

            pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
            currentFileName = dlg.FileName;
            button2.Enabled = true;

        }

    }

但是当我要上传 doc 文件时弹出一个错误。首先可以上传doc文件吗?如果是,那么我在以下代码行中显示内存不足

pictureBox2.Image = Image.FromFile(dlg.FileName);

【问题讨论】:

标签: c#


【解决方案1】:

PictureBox 控件仅用于在WinForm 应用程序中显示图像(查看MSDN)。要在您的应用程序中显示.doc 文件内容,您必须使用word 或一些解决方法(如发布的here

【讨论】:

    【解决方案2】:

    您收到该错误的原因是doc 文件不是有效的图像格式。

    文档中对此进行了概述:http://msdn.microsoft.com/en-us/library/stf701f5.aspx

    可以上传doc 文件,但不是在您想要的上下文中,即使用Image.FromFile 并将其分配给图片框对象。

    【讨论】:

      【解决方案3】:

      http://msdn.microsoft.com/en-us/library/stf701f5.aspx

      该主题中涉及的内存不足异常。

      如果文件类型无效,FromFile 方法会抛出异常。

      您应该首先对文件类型的兼容性进行必要的检查,更不用说围绕此方法包装一个 try catch 以确保您尽可能防御性地进行编码。

      【讨论】:

        【解决方案4】:

        请参考 MSDN 的 link。当您加载的图片格式不合适时,它会抛出 OutOfmemoryException。

        要解决您的问题,您应该检查图片文件的格式,而不是像上面那样直接加载。

        请参考here 了解如何检测图像文件的格式。

        要加载 PDF 或 Word 文档,您应该参考 here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-11
          • 1970-01-01
          • 1970-01-01
          • 2022-01-10
          • 2019-10-10
          • 1970-01-01
          相关资源
          最近更新 更多