public void FitSize(string path)
{
HObject ho_Image;// 定义图片
HTuple hv_width, hv_height = null;//定义图片大小
HTuple win_Row, win_Column, win_Width, win_height = null; //窗口的坐标和宽度和高度
HTuple cwin_Width, cwinHeight = null; // 计算出来展示的区域
// 读取图片
HOperatorSet.ReadImage(out ho_Image, path);
//获取图像大小
HOperatorSet.GetImageSize(ho_Image, out hv_width, out hv_height);
HOperatorSet.GetWindowExtents(win_handle, out win_Row, out win_Column, out win_Width, out win_height);//获取窗口的大小
//计算展示的高度 a = c/d * b
cwinHeight = 1.0 * win_height / win_Width * hv_width; // 宽度不变计算高度
if (cwinHeight > hv_height) //上下留相等黑边
{
cwinHeight = 1.0 * (cwinHeight - hv_height) / 2;
//展示图像哪一部分 坐标原点在图像的左上角
HOperatorSet.SetPart(win_handle, -cwinHeight, 0, cwinHeight + hv_height, hv_width);
HOperatorSet.DispObj(ho_Image, win_handle);
}
else // 高度不变 宽度自适应
{
cwin_Width = 1.0 * win_Width / win_height * hv_height;
cwin_Width = 1.0 * (cwin_Width - hv_width) / 2;
HOperatorSet.SetPart(win_handle, 0, -cwin_Width, hv_height, hv_width + cwin_Width);
HOperatorSet.DispObj(ho_Image, win_handle);
}
}