1

*.fig在使用 C# 将文件(来自 Matlab)转换为位图(或我可以在 pictureBox 中使用的任何类型)时遇到问题。

我需要以某种方式读取此文件,然后将其显示在图片框中。

我尝试了几种方法,例如:

Image img = Image.FromFile(fileName);
Bitmap bmp1 = new Bitmap(img.Width, img.Height);

但是我在第一步中抛出了“内存不足”异常。

你有什么想法怎么做吗?

4

2 回答 2

1

我有一个提议:

在您的窗体上放置一个面板,而不是图片框。然后,使用 System.Diagnostics.Process 启动 matlab 查看器(对此需要依赖,抱歉)。现在,您可以使用此处的说明获取查看器主窗口的窗口句柄:

如何从进程ID获取主窗口句柄?

接下来,将其父级更改为 Windows 窗体中的面板。

http://support.microsoft.com/kb/89563

我以前使用过这个技巧,它需要一些调整,但是您可以捕获另一个进程的主窗口并将其设置为表单上的子控件。如果你能找到一种不那么凌乱的方法,那就太好了。

于 2012-10-19T20:10:13.990 回答
0

当图像文件的格式不正确时,也会发生内存不足异常。 http://msdn.microsoft.com/en-us/library/stf701f5.aspx

您可能需要使用一些工具将 .fig 文件更改为图像格式。我不确定 Matlab 如何保存 .fig 文件,因此您需要对文件的实际存储方式进行一些研究,或者找到一些第三方软件将您的文件更新为可行的格式。

于 2012-10-19T19:46:39.073 回答