mfc中StretchBlt缩放图像失真问题【zozo】
转自http://blog.163.com/zozowit@126/blog/static/40705087200881213834300/
用StretchBlt,图像缩放是,失真很严重
有人说用pScreenDC->SetStretchBltMode(COLORONCOLOR),结果失真更严重了
发现pDC->SetStretchBltMode(HALFTONE);效果最佳
深层了解:
函数原型:int SetSTretchBltMode(HDC hdc, int iStretchMode)
参数:
hdc:设备环境句柄。
LStretchMode:指定拉伸模式。它可以取下列值,这些值的含义如下:
BLACKONWHITE:使用消除和现在的像素颜色值进行逻辑AND(与)操作运算。如果该位图是单色位图,那么该模式以牺牲白色像素为代价,保留黑色像素点。
COLORONCOLOR:删除像素。该模式删除所有消除的像素行,不保留其信息。
HALFTONE:将源矩形区中的像素映射到目标矩形区的像素块中,覆盖目标像素块的一般颜色与源像素的颜色接近。在设置完HALFTONE拉伸模之后,应用程序必须调用SetBrushOrgEx函数来设置刷子的起始点。如果没有成功,那么会出现刷子没对准的情况。
STRETCH_ANDSCANS:与BLACKONWHITE一样。
STRETCH_DELETESCANS:与COLORONCOLOR一样。
STRECH_HALFTONE:与HALFTONE相同。
STRETCH_ORSCANS:与WHITEONBLACK相同。
WHITEONBLACK:使用颜色值进行逻辑OR(或)操作,如果该位图为单色位图,那么该模式以牺牲黑色像素为代价,保留白色像素点。
返回值:如果函数执行成功,那么返回值就是先前的拉伸模式,如果函数执行失败,那么返回值为0。
Windows NT:若想获得更多错误信息,请调用GetLastError函数。
备注:拉伸模式在应用程序调用StretchBit函数时定义系统如何将位图的行或列与显示设备上的现有像素点进行组合。
BLACKONWHITE(STRETCH_ANDSCANS)和WHITEONBLACK(STRETCH_ORSCANS)模式典型地用来保留单色位图中的前景像素。COLORONCOLOR(STRETCH_DELETESCANS)模式则典型地用于保留彩色位图中的颜色。
HALFTONE模式比其他三种模式需要对源图像进行更多的处理,也比其他模式慢,但它能产生高质量图像,也应注意在设置HALFTONE模式之后,应调用SetBrushOrgEx函数以避免出现刷子没对准现象。
根据设备驱动程序的功能不同,其他一些拉伸模式也可能有效。
mfc中StretchBlt缩放图像失真问题【zozo】相关推荐
- 【VS开发】MFC学习之 解决StretchBlt()图片缩放绘图失真
vc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真.在了解解决方法前先巩固下StretchBlt的用法: StretchBlt 函数功能:函数从源矩形中复制一个位图到目标矩形 ...
- VC++中StretchBlt图像失真问题的解决办法
VC++中StretchBlt图像失真问题的解决办法 2010年11月02日 09:56:00 gengxt2003 阅读数:7972 VC++中StretchBlt图像失真问题的解决办法 2009年 ...
- MFC空间几何变换之图像平移、镜像、旋转、缩放
本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图片空间几何变换,包括图像平移.图形 ...
- 【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解
本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图片空间几何变换,包括图像平移.图形 ...
- 【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转、缩放具体解释...
本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行解说,主要通过MFC单文档视图实现显示BMP图片空间几何变换.包含 ...
- 如何在ImageView中缩放图像以保持纵横比
在Android中,我将ImageView的layout_width定义为fill_parent (占用手机的整个宽度). 如果我放到ImageView的图像大于layout_width ,Andro ...
- android 图片长宽比例缩放,关于android:如何在ImageView中缩放图像以保持纵横比
在Android中,我将ImageView的layout_width定义为fill_parent(占用手机的整个宽度). 如果我放入ImageView的图像大于layout_width,Android ...
- 解决StretchBlt()压缩图片失真
vc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真.在了解解决方法前先巩固下StretchBlt的用法: StretchBlt 函数功能:函数从源矩形中复制一个位图到目标矩形 ...
- 在vc或mfc中显示IplImage的方法
平常使用Open CV时总是跳出一个个窗口,很难将项目进行系统集成,特别是在MFC等Windows环境中加载显示Open CV中的IplImage图像: /********************** ...
最新文章
- 【OpenCV 4开发详解】均值滤波
- mysql在线模拟器_力荐一款在线SQL模拟器
- 小型电梯尺寸_简易式家用电梯-潞城=小型阁楼家用电梯
- python笔记:Gurobipy
- 基于Vue.js的后台管理系统组件开发
- PHP Parse error: parse error, unexpected T_OBJECT_OPERATOR
- 关于maven依赖中的scopeprovided/scope使用
- delphi 复制文件 强制覆盖_网传美国选这三家中国橱柜企业为反倾销强制应诉人...
- NLog 在winform和asp.net下使用快速攻略 .
- 学习总结-《父与子的编程之旅》chapter 9
- koa2 mysql增删改查_使用nodejs-koa2-mysql-sequelize-jwt实现登录注册,文章增删改查接口...
- SIM900A—基础指令
- 蓝蓝的天空上飘着白云,白云的下面藏着雪白的羊群 ---- 刘烨
- ZYNQ---PL端扩展串口
- tecplot常用笔记
- linux中的du命令和df命令和fdisk命令
- Android 语音播报 , 百度在线语音合成封装;
- sincerit 算法竞赛宝典--油桶问题
- 当GCN遇见NLP(三) Tensor Graph Convolutional Networks for Text Classification,AAAI2020
- 抖音seo账号矩阵排名seo优化系统搭建部署