• 1316阅读
  • 2回复

DrawImage函数---旋转、反射和扭曲图像 [复制链接]

上一主题 下一主题
离线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2016-02-16




[cpp] view plain copy
  1. Status DrawImage(IN Image* image,  
  2.                  IN const PointF* destPoints,  
  3.                  IN INT count)  
  4. {  
  5.     if (count != 3 && count != 4)  
  6.         return SetStatus(InvalidParameter);  
  7.    .............................................  
实现图片的反射和倾斜,只能为3-4个点,3个点依次为左上/右上/左下角,相对于图像的原始坐标映射
假设原始图像是一个矩形,其左上角、右上角和左下角分别位于 (0, 0)、(100, 0) 和 (0, 50)。
现在假设我们将这三个点按以下方式映射到目标点。
原始点目标点
左上角 (0, 0)   ------     (200, 20)
右上角 (100, 0)   ---- (110, 100)
左下角 (0, 50)     ---- (250, 30)

示例代码:

[cpp] view plain copy
  1. Bitmap orgpic(_T("D:\\1.PNG")) ;  
  2.     Graphics g(GetDC()->GetSafeHdc()) ;  
  3.     PointF desPoint[] = \  
  4.     {  
  5.         PointF(orgpic.GetWidth(),0) ,                  //top-left--------------对应原图(0,0)  
  6.         PointF(orgpic.GetWidth()+orgpic.GetHeight(), orgpic.GetWidth()) ,//top-right-----对应原图(orgpic.GetWidth(),0)  
  7.         PointF(0,orgpic.GetHeight())                   //low-left-----对应原图(0,orgpic.GetHeight())  
  8.     };  
  9.     g.DrawImage(&orgpic, desPoint, 3) ;  
顺时针旋转了45度变大。
具体可用MSDN搜Graphics Methods
http://msdn.microsoft.com/zh-cn/library/t3tye9kw.aspx


顶0
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线im86165507

只看该作者 沙发  发表于: 2016-02-16
离线v2680267313

只看该作者 板凳  发表于: 2016-04-30
用户被禁言,该主题自动屏蔽!
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个