我在使用C#将*.fig
文件(来自Matlab)转换为位图(或我在pictureBox中可以使用的任何类型)时遇到问题。
我需要以某种方式阅读此文件,然后在pictureBox中显示它。
我尝试了几种方法,例如:
Image img = Image.FromFile(fileName);
Bitmap bmp1 = new Bitmap(img.Width, img.Height);
但是我在第一步中抛出了“内存不足”异常。
你有什么想法怎么做??
答案 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文件,因此您需要对文件的实际存储方式进行一些研究,或者找一些第三方软件将文件更新为可行的格式。