3

我们的产品是 Microsoft Office 的插件,其中包含一些 GUI。

我们Graphics.DrawImage用来绘制图像。

问题是我们有一个特定的用户报告了一些问题,即 GUI 没有出现在 Microsoft Outlook 中,但同时它在 Microfot Word 中运行良好。

我在日志中看到的错误是:

System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.
    at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
    at System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height)

我知道这可能意味着某种资源有限的问题,但问题是相同的 GUI 在 Microsoft Word 中运行得非常好。此外,我们尝试绘制的图像是一个 16x16 的小图标。

特定过程是否存在任何可能导致这种情况的限制?

更新:问题出现在未从文件流正确加载的特定图像上。

4

1 回答 1

1

使用 aMemoryStream时,重要的是在图像的所有使用过程中保持流处于活动状态,直到图像被释放。这是因为图像有时需要从内存流所代表的内存区域中读取。

如果在处理图像之前关闭流,则内存区域可能会或可能不会变得无效。

当您处理图像时,流也将被关闭。

于 2012-12-02T16:44:42.790 回答