c#调用matlab的dll,将图片嵌入到winform 【实测成功】


仅作为操作记录,大佬请跳过。

背景

c#调用matlab显示image的dll,将本地图片嵌入到winform

博主本想将matlab中plot生成的图片,显示在c#的winform里,但后来发现直接调用plot的dll行不通(c#会出错),后来查到实现c#嵌入matlab生成的图片有两类方法——感谢大佬文章—传送门1
1、先把Figure保存为图片,然后WinForm窗体去读取图片;
2、利用Windows API 技术,动态的获取窗体句柄,然后嵌入到WinForm中。

利用第二种API的方法可能会复杂些,博主找了很长时间的资料,找到了用第一种方法的文章,【实测成功】
重要参考——传送门2

步骤

总述:博主按照“重要参考——大佬博主文章传送门”里的方法,建立了matlab的函数文件、生成dll文件、visual studio 2019 中设置引用、书写c#代码【此步骤略有不同】、解决x64的bug

1、建立matlab函数文件

在这里插入图片描述

2、matlab中生成dll

可参考博主文章——传送门

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、visual studio中建立c#的winform

visual studio中建立c#的winform,并添加引用MWArray.dll、showimage.dll
在这里插入图片描述

写c#代码

form1.cs[设计]里设计界面
form1.cs里写代码:
program.cs里不用管

在这里插入图片描述
在这里插入图片描述

5、完整源代码

博主分享完整源代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MathWorks.MATLAB.NET.Arrays;
using System.IO;
using showimage;


namespace b1imageshow
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            showimageclass a = new showimageclass();
            a.showimage();
            //a.ppp("D:\\ffinal\\2.bmp");
            Stream s = File.Open("E:\\code\\matlab\\matlabmixwithc#\\21.png", FileMode.Open);//21.bmp是在matlab里面存的照片
            //Stream s = File.Open("D:\\ffinal\\21.bmp", FileMode.Open);//21.bmp是在matlab里面存的照片
            pictureBox1.Image = Image.FromStream(s);
            //将图像显示在picturebox1上

        }
    }
}

展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值