当用StretchBlt缩小时,我们经常发现它会失真:

其原因为当StrecthBlt() 的DestRect比SorRECT小時 必須要將一些点去掉
他的预设做法 是將要去掉的点与旁边的点做AND运算,所以导致像素错误,

解决方法:(原图)

COLORONCOLOR:直接將不要的点删掉.

HALFTONE:將要删掉的像素跟周围的中和起來,這样可得到较好的画质 不过效率当然要牺牲点(相当于PS的那个模糊工具)。

主要测试代码:

     CRect rcClient;GetClientRect(rcClient);CPaintDC dc(this);CDC dcMem;dcMem.CreateCompatibleDC(&dc);CBitmap *pOldBmp = dcMem.SelectObject(&m_bmp);BITMAP bm;m_bmp.GetBitmap(&bm);int OldMode = -1;switch(m_State){case State_COLORONCOLOR:OldMode = dc.SetStretchBltMode(COLORONCOLOR);break;case State_HALFTONE:OldMode = dc.SetStretchBltMode(HALFTONE);break;default:break;}dc.StretchBlt(0, 0, rcClient.Width(), rcClient.Height(), &dcMem, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);if(-1 != OldMode)dc.SetStretchBltMode(OldMode);dcMem.SelectObject(pOldBmp);dcMem.DeleteDC();

直接上三个效果图吧:

测试代码链接:

转载于:https://www.cnblogs.com/hgy413/archive/2011/09/17/3693590.html

SetStretchBltMode() 防止图片失真相关推荐

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

    vc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真.在了解解决方法前先巩固下StretchBlt的用法: StretchBlt 函数功能:函数从源矩形中复制一个位图到目标矩形 ...

  2. html屏幕缩小图片不失真,html图片失真怎么办

    html图片失真的解决办法:首先打开相应的HTML文件:然后找到HTML img引入的图片:最后通过给img图片添加"object-fit:none;"属性来解决图片失真问题即可. ...

  3. Adobe Illustrator(ai)导出emf/wmf渐变图片失真色块

    参考文献:https://jingyan.baidu.com/album/b87fe19e935c9052183568fc.html?picindex=1 软件环境:Adobe Illustrator ...

  4. html怎样图片不会失真,css解决图片失真

    css image-rendering属性用于浏览器如何处理图片呈现.IE下使用-ms-interpolation-mode,在IE7下只支持图片不支持透明,且默认值为"nearest-ne ...

  5. css解决图片失真问题

    1.背景图片失真 .con{height:100vh;width:100vm;background: url(../../assets/login/background.png) 100% 100%; ...

  6. java关于Zxing 生成带Logo 二维码图片失真问题

    java关于Zxing 生成带Logo 二维码图片失真问题 问题点 logo本身是高清图片,但是Zxing生成的二维码中,logo像素失真,感觉被严重压缩一样. 排查问题 是Graphics2D 绘制 ...

  7. PPT另存为pdf的图片失真问题解决

    用PPT做好宣传图,另存为pdf.图片失真了. http://blog.csdn.net/weixin_37730347/article/details/70171242参考这个链接修改PPT的参数, ...

  8. JS生成二维码以及保存页面为图片的解决方案:html2Canvas+file-saver+qrcodejs2的使用心得以及解决图片失真,保存不完整的解决办法

    前言 最近因为工作需求,需要前端根据后端传过来的链接生成二维码,并且要使用JS保存页面为图片.然后网上搜了很多解决办法.最终都是用h5的canvas进行绘制然后保存为图片.其中,又以html2Canv ...

  9. poi导出图片失真变为红色和图片背景变为黑色

    插入图片: private void setPicture(HSSFWorkbook wb, HSSFPatriarch patriarch, String pic, int iRowStart, i ...

  10. flash无法找到类接口和图片失真问题。

    刚写的,直接刷没了.0-0 看问题. 公司升级软件,但是,再使用原来的模板和类后,系统报错:无法找到类接口. 整整一篇. 但是我进去看了代码,使用了import和include,那到底是那里错了呢? ...

最新文章

  1. svn 不支持http 客户端_Xversion for mac(SVN客户端)
  2. 查看电脑python虚拟环境-手把手教你在Linux系统下使用Python虚拟环境
  3. jmeter(十一)JDBC Request之Query Type
  4. tp5 童攀_童攀TP5企业网站实战笔记
  5. rest spring_Spring REST:异常处理卷。 1个
  6. 从Oracle向PPAS移行不成功时的处理
  7. js的异常捕获try和catch语句
  8. 突发!百度张亚勤退休
  9. 【论文】Realtime lane tracking of curved local road 检测和跟踪功能
  10. Milking Cows /// 区间计数 离散化排序 oj10105
  11. 汽车电子控制系统的构成
  12. 智能计算系统课程笔记05:编程框架机理
  13. 熬夜肝出囊括Java后端95%的面试题解析
  14. 主机宝linux版,主机宝linux版有什么用
  15. 如何利用少数粉丝,实现短时间流量倍增?
  16. android 键盘 定义,自定义全键盘-[Android_YangKe]
  17. 国外计算机科学英语演讲,华工学子英语演讲共庆祖国华诞
  18. QTP工具简单操作使用说明
  19. 诺基亚两年裁员11044人,中国幅度最大达3500人
  20. Web渗透测试之逻辑漏洞挖掘

热门文章

  1. java程序中oracle回滚,Oracle的DDL语句不能回滚(直接提交)
  2. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_23-页面预览-页面预览开发
  3. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_15-异常处理-异常处理流程...
  4. PyTricks 翻译:Python 字典的 get() 方法和它的默认参数
  5. Android-将RGB彩色图转换为灰度图
  6. TypeError: this.getResolve is not a function
  7. 【HANA系列】SAP HANA中null变成问号的问题
  8. Mybatis 优化:
  9. 基于bootstrap table配置的二次封装
  10. 硬件开发者之路之——保护电路系列之输入电源端口的防护设计