利用Show方法可以指定显示的起始坐标,
故只需进行简单的判断,
即可使图像在Picture控件上显示不发生拉伸
e.g:
rw = rect.right - rect.left; //得到控件宽度
rh = rect.bottom - rect.top; //得到控件高度
iw = image->width; //得到图像宽度
ih = image->height; //得到图像高度
tx = (int)(iw - rw)/2; //得到显示的初始x坐标
ty = (int)(ih - rh)/2; //得到显示的初始y坐标
CvvImage cimg; //使用CvvImage类的图像的DrawToHDC函数
cimg.CopyOf(image,image -> nChannels ); //根据所给的图像设置其显示的通道数
if (tx <= 0 && ty <= 0) //图像比DC小
{
x = -tx; //从DC上的第几行开始
y = -ty; //从DC上的第几列开始
w = iw; //图像宽度
h = ih; //图像高度
from_x = 0; //从图像第几行开始
from_y = 0; //从图像第几列开始
}else if (tx > 0 && ty > 0) //图像比DC大
{
x = 0; //从DC上的第几行开始
y = 0; //从DC上的第几列开