问一下GDI+里的DrawImage的参数问题

yann2 2010-10-26 09:11:46

Point points[] = {Point(0,0), //原点
Point(nWidth,0), //右上点
Point(0,nHeight), //左下点
};
graph.DrawImage(m_pImageGUI,points,3);


上面这段代码是将m_pImageGUI输出到窗口中

大家也看到了注释吧,输出图片的原点、右上点、左下点 三个点的x y


问题是,我尝试加入第4个点想用来代表右下点,运行后 图片却贴不出来

我想详细了解一下DrawImage这个参数问题,既然支持3个点的设置 难道就不支持设置第4个点了吗?

下面是我尝试用4个点来输出却失败的代码

Point points[] = {Point(0,0), //原点
Point(nWidth,0), //右上点
Point(0,nHeight), //左下点
Point(nWidth,nHeight)
};
graph.DrawImage(m_pImageGUI,points,4);




求解!
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
job82824 2010-10-26
  • 打赏
  • 举报
回复
三个点形成一个面--有三个点就可以确定唯一的平行四边形了。
zgl7903 2010-10-26
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/ms536051(VS.85).aspx
j8daxue 2010-10-26
  • 打赏
  • 举报
回复
The value of the count parameter must equal 3 to specify the three corners of the parallelogram. The fourth corner of the parallelogram is calculated using the vectors of the first and second coordinates and the first and third coordinates. The image is scaled to fit the parallelogram

count必须为3
第四个角落的参数是根据1,2点的y坐标/1,3点的坐标。

一般没用到这个重载。。
yann2 2010-10-26
  • 打赏
  • 举报
回复
但我想按我的方法来输出的话 那第四个点是怎么回事呢
百事烟 2010-10-26
  • 打赏
  • 举报
回复
	Bitmap bmp1(d:\\test.jpg);
Graphics *pGdiDC = Graphics::FromHWND(m_hWnd);
pGdiDC->DrawImage(&bmp1, 0, 0, 400, 300); // 指定大小
pGdiDC->DrawImage(&bmp1, 0, 0); // 原大小输出
lilingshui 2010-10-26
  • 打赏
  • 举报
回复
这个函数是用来方便将一个图像画到一个平行四边形中,比起平常只能画到矩形要先进不少,但还没先进到能将图像画到任意形状的区域中,因此它为了不让你形成一个奇怪的区域,只让你输入三个坐标,第四个坐标由他自己推算出来,以保证由这四点只能构成一个平行四边形。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧