C#与Halcon联合编程之如何使Halcon窗口显示的图片适应窗口控件的大小
在winform窗体中添加一个Halcon窗口控件hWindowControl,要想在控件上显示一张图片往往会出现图片只显示部分,而不能在当前的窗口中完全显示,如下图所示:
(左边是在PictureBox控件中显示,右边是在Halcon窗口控件中显示)
解决方法如下所示:
定义窗口句柄的两步:
HTuple hWind;//hWind为窗口句柄
hWind = hWindowControl1.HalconWindow;//hWindowControl1为Halcon窗口控件的Name
HTuple Height, Width;
HObject ho_Image;
// 初始化本地和输出图片变量
HOperatorSet.GenEmptyObj(out ho_Image);
ho_Image.Dispose();
HOperatorSet.ReadImage(out ho_Image, "C:/Users/asus-pc/Desktop/images/Luka.jpeg");
HOperatorSet.GetImageSize(ho_Image, out Width, out Height);
//修改显示的图像部分,将图片的高度和宽度分别作为要显示部分的右下角的行高度和列宽度
HOperatorSet.SetPart(hWind, 0, 0, Height - 1, Width - 1);
HOperatorSet.DispObj(ho_Image, hWind);
关于算子set_part:
set_part( : : WindowHandle, Row1, Column1, Row2, Column2 : )
set_part修改窗口中显示的图像部分。其中,WindowHandle为窗口句柄,(Row1,Column1)表示要显示图像部分的左上角的行高和列宽,(Row2,Column2)表示要显示图像部分的右下角的行高和列宽。