如何使用C#将* .fig文件(从Matlab)转换为位图

时间:2012-10-19 19:40:33

标签: c# matlab file-conversion

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

我需要以某种方式阅读此文件,然后在pictureBox中显示它。

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

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

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

你有什么想法怎么做??

2 个答案:

答案 0 :(得分:1)

我有一个建议:

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

How to get main window handle from process id?

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

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

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

答案 1 :(得分:0)

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

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