使用StretchBlt函数缩小图片时的失真问题
使用StretchBlt函数缩小图片进行显示时,会出现比较明显的失真问题。
不同与图片放大问题,缩小图片失真,是因为WINDOWS默认的缩小图片算法,是直接删除掉多余的点信息,从而导致图片显示失真。
使用SetStretchBltMode函数,设置缩放模式为HALFTONE,即可解决此问题。
注:
int SetStretchBltMode(HDC hdc, int iStretchMode);
hdc:设备环境句柄。
iStretchMode:指定拉伸模式。它可以取下列值,这些值的含义如下:
BLACKONWHITE:使用消除和现在的像素颜色值进行逻辑AND(与)操作运算。如果该位图是单色位图,那么该模式以牺牲白色像素为代价,保留黑色像素点。
COLORONCOLOR:删除像素。该模式删除所有消除的像素行,不保留其信息。
HALFTONE:将源矩形区中的像素映射到目标矩形区的像素块中,覆盖目标像素块的一般颜色与源像素的颜色接近。在设置完HALFTONE拉伸模之后,应用程序必须调用SetBrushOrgEx函数来设置刷子的起始点。如果没有成功,那么会出现刷子没对准的情况。
STRETCH_ANDSCANS:与BLACKONWHITE一样。
STRETCH_DELETESCANS:与COLORONCOLOR一样。
STRETCH_HALFTONE:与HALFTONE相同。
STRETCH_ORSCANS:与WHITEONBLACK相同。
WHITEONBLACK:使用颜色值进行逻辑OR(或)操作,如果该位图为单色位图,那么该模式以牺牲黑色像素为代价,保留白色像素点。
使用StretchBlt函数缩小图片时的失真问题相关推荐
- resize函数缩小图片的尺寸 车辆检测
场景 使用resize函数缩小图片的尺寸,希望能够减少车辆上不相干的颜色,例如车牌,例如车镜,或者是出租车的车顶,希望屏蔽相关的细节,从而描绘出车辆的轮廓,最终没有达到任何的效果,contour没有实 ...
- ffmpeg 调整相片大小_resize函数缩小图片的尺寸 车辆检测
场景 使用resize函数缩小图片的尺寸,希望能够减少车辆上不相干的颜色,例如车牌,例如车镜,或者是出租车的车顶,希望屏蔽相关的细节,从而描绘出车辆的轮廓,最终没有达到任何的效果,contour没有实 ...
- 用StretchBlt()来设置图片时,图片背景变黑色。
CRect rect3;//定义矩形类 CImage image; //创建图片类 image.Load(_T("res/导出.png")); m_export.GetClient ...
- 【VS开发】MFC学习之 解决StretchBlt()图片缩放绘图失真
vc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真.在了解解决方法前先巩固下StretchBlt的用法: StretchBlt 函数功能:函数从源矩形中复制一个位图到目标矩形 ...
- 使用StretchBlt函数导致位图失真的解决方案
本文转自网络. vc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真,在了解解决方法前先巩固下StretchBlt的用法: StretchBlt 函数功能: 函数从源DC中复制 ...
- 使用openCV 的cv2.imread函数读取图片找不到路径
使用openCV 的cv2.imread函数读取图片时出现,找不到图像的问题: 错误如下: 尝试把 \ 换为 /, 或者把 \ 换为 \ 都不可以. 后来发现,是中文路径的问题,将中文路径换为英文路径 ...
- php如何缩小图片,PHP图片缩小函数一例
/** * 缩小图片函数 * 删除了原始图片保留了操作后的图片 * @param string $fileName * @return void */ private function createS ...
- html 图片放大保证不失真,教你如何在保证图片不失真的情况下缩小图片大小
教你如何在保证图片不失真的情况下缩小图片大小 随着卡片机.单反的普及,越来越多的人有能力购买和拥有一台属于自己的相机,并随时随地拍摄下喜欢的风景.人物,记录身边美好的一切.照片拍下后,大部分人喜欢放到 ...
- StretchBlt()函数使用
StretchBlt函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩. 说白了功能就是缩放. 函数原型如下 函数原型:BOOL StretchBlt(HDC h ...
最新文章
- 最新论文解读 | 神经网络“剪枝”的两个方法
- saltstack一些常用模块和api调用方法
- 如何让服务器端持续监听客户端的请求?
- 【遇到问题】ORA-27102 ORA-01034
- RHEL6入门系列之十一,内/外部命令、重定向、管道
- 【PAT甲级 排序】1036 Boys vs Girls (25 分) C++
- C++MFC编程笔记day01 MFC介绍、创建MFC程序和重写消息处理
- ( function(){…} )()
- 伯努利数(详解 + 例题 :P3711 仓鼠的数学题)
- 多主机Docker容器的VLAN划分
- 将老电脑从windows xp系统升级到10//将win10 32位系统更为64位
- Denoising DNA deep sequencing data—high-throughput sequencing errors and t对DNA深度测序数据进行去噪-高通量测序错误及其校正
- 添加metadata到tflite模型
- dell服务器设置CPU高性能,DellR720服务器提示cpu1 internal error (IERR)
- python批量修改文件名字为数字编号
- Android 实现GIF播放的几种方式
- 【BZOJ3131】淘金(SDOI2013)-数位DP+优先队列
- 提示键盘锁定大写jQuery代码
- Win10/Ubuntu20.04编译ros2_documentation-foxy过程
- 翟振武教授的荒唐逻辑