Halcon 与 c# 混合编程读取并显示一张图片
2017-09-01 17:07
218 查看
感受:趟了几个雷,摸到几块石头,知其然不知其所以然,聊以记录,为后人享。欲知其所以然,还是得从头去
软件配置: Halcon 12 + Visual Studio 2013
以下实现Halcon读取并完整显示桌面上的一幅图片
注意这里的程序当中,用到了一个dev_set_part()算子,这个算子很重要。如果没有用这个算子,则在最后完成的控件中,图片将显示不完整。
另外注意,在HDevelop环境中,在默认设置下,图片的显示和更新是自动的。但如果想在控件中实现图片的显示,则必须在每一处需要显示的位置,使用dev_display()算子。
然后将Halcon代码导出成c#代码:
在“设计”中完成以下设计:
如何添加按钮,在这里就不多说了。
上面的那个控件是HWindowsControl。
在弹出窗口中选择“浏览”
在MVTech安装目录下查找:halcon12.0\bin\dotnet20或dotnet35文件夹,我这里是选的dotnet35文件夹,应该是和VS的版本相匹配。
找到文件夹下halcondotnet.dll添加即可。
首先在程序头添加
接下来是一个坑,向namespace中添加导出的Halcon c#代码时一定得注意:必须把导出的代码放在控件的代码段后面。否则就会弹个错!!!
喏就是它了,public partial class HDevelopExport:
最后一步就是改写按钮控件的事件响应:
对我很懒,就叫button1.
最后要注意,项目编译的时候,属性选Any CPU,选别的也会错误框弹弹弹!!!
软件配置: Halcon 12 + Visual Studio 2013
以下实现Halcon读取并完整显示桌面上的一幅图片
1.实现Halcon读取图片并显示的功能
首先当然是先把Halcon的代码写好:dev_close_window () read_image (Image, 'C:/Users/Administrator/Desktop/timg.jpg') get_image_size (Image, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowHandle) dev_set_part (0, 0, Height-1, Width-1) dev_display (Image)
注意这里的程序当中,用到了一个dev_set_part()算子,这个算子很重要。如果没有用这个算子,则在最后完成的控件中,图片将显示不完整。
另外注意,在HDevelop环境中,在默认设置下,图片的显示和更新是自动的。但如果想在控件中实现图片的显示,则必须在每一处需要显示的位置,使用dev_display()算子。
然后将Halcon代码导出成c#代码:
2.建立c#工程
在VS中新建一个c#工程,记住框架要选 .NET Framework 4,不要手贱看到还有高版本的4.5就跑去选4.5在“设计”中完成以下设计:
如何添加按钮,在这里就不多说了。
上面的那个控件是HWindowsControl。
3.工具箱中添加Halcon窗口工具(首次使用需要)
如果是首次使用Halcon和c#混合编程,则需要向VS的工具箱中添加Halcon窗口工具HWindowControl。添加的方法是在“视图”->“工具箱”-> “所有Windows窗体”中右击,选择“选择项”在弹出窗口中选择“浏览”
在MVTech安装目录下查找:halcon12.0\bin\dotnet20或dotnet35文件夹,我这里是选的dotnet35文件夹,应该是和VS的版本相匹配。
找到文件夹下halcondotnet.dll添加即可。
4.程序改写
接下来就是非常重要的程序改写阶段啦。首先在程序头添加
using HalconDotNet;
接下来是一个坑,向namespace中添加导出的Halcon c#代码时一定得注意:必须把导出的代码放在控件的代码段后面。否则就会弹个错!!!
喏就是它了,public partial class HDevelopExport:
最后一步就是改写按钮控件的事件响应:
private void button1_Click(object sender, EventArgs e) { HDevelopExport HD = new HDevelopExport(); HD.RunHalcon(hWindowControl1.HalconWindow); }
对我很懒,就叫button1.
最后要注意,项目编译的时候,属性选Any CPU,选别的也会错误框弹弹弹!!!
相关文章推荐
- halcon与C#混合编程(一)打开一张图片
- halcon与C#混合编程(一)打开一张图片
- [转帖]如何将一张图片写入数据库SQL,并能正确在C#网页中显示
- halcon与C#混合编程(一)打开一张图片
- halcon13初探,显示一张图片(c++)
- halcon与C#混合编程(一)打开一张图片
- c# winform 读取oracle中blob字段的图片并且显示到pictureBox里,保存进库
- C#中使comboBox下拉列表显示图片
- Unity UGUI 多张图片合成一张 记时 显示ICO
- asp.net(c#)从数据库里读取图片并显示到页面
- C#把图片转换字节存入数据库在读取显示出来。
- C#将图片以二进制流形式存到数据库,并读取显示
- 想在C#中的listView 控件中显示图片
- VC/halcon入门之显示图片
- 如何把一张图片上的几个小图片按自己的要求有规律的显示出来
- 自定义显示图片--c#
- C# wpf image绑定viewModel没有显示图片
- Android使用Tint,只用一张图片显示不同状态下的颜色
- C# 通过URL获取图片并显示在PictureBox上的方法
- C#IE图片缓存不显示