解决StretchBlt()压缩图片失真

解决StretchBlt()压缩图片失真原文链接:http://blog.sina.com.cn/s/blog_63f5655a0100ht8j.htmlvc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真。在了解解决方法前先巩固下StretchBlt的用法:StretchBlt  函数功能:函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。  函数原型

大家好,欢迎来到IT知识分享网。

原文链接:http://blog.sina.com.cn/s/blog_63f5655a0100ht8j.html

vc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真。在了解解决方法前先巩固下StretchBlt的用法:

StretchBlt

  函数功能:函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。

  函数原型:BOOL StretchBlt(HDC hdc, int nXOriginDest, intnYOriginDest, int nWidthDest, int nHeighDest, HDC hdcSrc, intnXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORDdwRop);

  参数:

  hdcDest:指向目标设备环境的句柄。

  nXOriginDest:指定目标矩形左上角的X轴坐标,按逻辑单位表示坐标。

  nYOriginDest:指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标。

  nWidthDest:指定目标矩形的宽度,按逻辑单位表示宽度。

  nHeightDest:指定目标矩形的高度,按逻辑单位表示高度。

  hdcSrc:指向源设备环境的句柄。

  nXOriginSrc:指向源矩形区域左上角的X轴坐标,按逻辑单位表示坐标。

  nYOriginSrc:指向源矩形区域左上角的Y轴坐标,按逻辑单位表示坐标。

  nWidthSrc:指定源矩形的宽度,按逻辑单位表示宽度。

  nHeightSrc:指定源矩形的高度,按逻辑单位表示高度。

  dwRop:指定要进行的光栅操作。光栅操作码定义了系统如何在输出操作中组合颜色,这些操作包括刷子、源位图和目标位图等对象。参考BitBlt可了解常用的光栅操作码列表。

  返回值:如果函数执行成功,那么返回值为非零,如果函数执行失败,那么返回值为零。WindowsNT:若想获得更多的错误信息,请调用GetLastError函数。
 
 
 
   但是,StretchBlt函数缩放图片后图片失真严重,所以要用SetStretchBltMode函数来设置StretchBlt(或StretchDIBits)函数的伸缩模式。具体用法是
调用StretchBlt前调用:
SetStretchBltMode(pDC->m_hDC,STRETCH_HALFTONE); 
对比一下:
 
 
 

解决StretchBlt()压缩图片失真
解决StretchBlt()压缩图片失真

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23019.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信