1. 原型及参数

BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop );

x
目标矩形左上角的X逻辑坐标。 
y
目标矩形左上角的Y逻辑坐标。 
nWidth
目标矩形的宽度(逻辑单位)。 
nHeight
目标矩形的高度(逻辑单位)。 
pSrcDC
指定源设备上下文
xSrc
源矩形左上角的X逻辑坐标
ySrc
源矩形左上角的Y逻辑坐标 
nSrcWidth
源矩形的宽度(逻辑单位)
nSrcHeight

源矩形的高度(逻辑单位)

dwRop

指定要进行的光栅操作。光栅操作码定义了系统如何在输出操作中组合颜色,这些操作包括刷子、源位图和目标位图等对象。

2.返回值

如果函数执行成功,那么返回值为非零,如果函数执行失败,那么返回值为零。Windows NT:若想获得更多的错误信息,请调用GetLastError函数。

3.【注意】:函数使用前要使用SetStretchBltMode函数,该函数可以设置指定设备环境中的位图拉伸模式。

函数原型: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函数以避免出现刷子没对准现象。

StretchBlt()函数相关推荐

  1. StretchBlt函数和BitBlt函数的区别和用法

    StretchBlt和BitBlt都用用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的位图拷贝到屏幕上 ...

  2. StretchBlt()函数使用

    StretchBlt函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩. 说白了功能就是缩放. 函数原型如下 函数原型:BOOL StretchBlt(HDC h ...

  3. StretchBlt函数和BitBlt函数的用法

    StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的 ...

  4. 使用StretchBlt函数缩小图片时的失真问题

    使用StretchBlt函数缩小图片进行显示时,会出现比较明显的失真问题. 不同与图片放大问题,缩小图片失真,是因为WINDOWS默认的缩小图片算法,是直接删除掉多余的点信息,从而导致图片显示失真. ...

  5. 使用StretchBlt函数导致位图失真的解决方案

    本文转自网络. vc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真,在了解解决方法前先巩固下StretchBlt的用法: StretchBlt 函数功能: 函数从源DC中复制 ...

  6. 【转】StretchBlt函数和BitBlt函数的用法

    原帖地址:StretchBlt函数和BitBlt函数的用法 StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要 ...

  7. 使用StretchBlt函数实现绘制透明位图

    背景 在自己本科的时候,喜欢用 VC6.0 写一些小游戏来锻炼自己的编程水平.那些小游戏的游戏画面绘制都是使用Windows提供的GDI(图形设备接口)函数实现的,并没有调用现成的游戏引擎.所以,使得 ...

  8. 大图StretchBlt函数绘制提速

    MFC中CDC类的StretchBlt用于缩放绘图是挺好用的. 不过对于大像素的默认绘制速度比较慢,例如8196x8196像素,绘制起来很吃力.这种大图一般直接做底图或者一般都不会透明绘制的,所以默认 ...

  9. android imageview stretchblt,想知道Bmp图像的缩小放大用Tcanvas.StretchDraw还是用StretchBlt函数?(50分)...

    TCanvas.StretchDraw 应该是调用 StretchBlt API的(我没有看VCL源码,纯粹估计), 当然直接调用StretchBlt API 快一点啦. var MyJpeg: TJ ...

  10. 使用StretchBlt函数进行图像缩放

    原文链接:https://www.oschina.net/code/snippet_222150_16279 1. [代码][C/C++]代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 ...

最新文章

  1. 用vs2017编写html,vs2017可以编写java
  2. mysql 参数sql文件_为MySQL的source命令导入SQL文件配置参数
  3. 区块链常用架构是什么?它和保险业又如何结合?
  4. 13.7 手柄(Handle)
  5. 华为k662c的虚拟服务器,华为k662c路由器怎么设置
  6. 【渝粤教育】电大中专成本会计_1作业 题库
  7. 调试输出类型为dll的程序
  8. jsp连接mysql数据库读不出数据,jsp连接Mysql数据库出现有关问题,
  9. 三菱plc pwm指令_常用PLC各系列简介大全,选型必看!
  10. 关于代理服务器与NAT
  11. linux环境下的多线程编程(一)
  12. android模拟器mac版本下载,天天模拟器for Mac-天天模拟器mac版下载 V1.0.7-PC6苹果网...
  13. 读书笔记-计算机视觉
  14. 0x80131500打不开微软商店的解决办法
  15. MIT/GNU Scheme用户手册(八) Edwin
  16. office2019选框虚线_手把手教你分析PS2019里怎么画虚线
  17. 20几岁要懂点经济学【笔记】
  18. 得物购买截图生成_iPhone12订单生成器网页版-iPhone12订单生成器网页版链接分享预约 v1.0...
  19. 校园网wifi绕过认证软件的服务器垃圾总结
  20. 华为诺亚方舟实验室简述

热门文章

  1. CISCO路由器如何删除配置及%%non-valatile configuration memory is not present无法保存配置...
  2. [转载]Android开发新浪微博客户端 完整攻略 [新手必读]
  3. 理解Active Directory中用户登录的具体行为
  4. 遭遇爆炸式匿名*** 瑞星称有人下黑手
  5. [JNI] 开发基础(6)字符串相关操作
  6. 【代码优化】私有构造器使用及对象创建优化
  7. BZOJ3675[APIO2014] 序列分割
  8. element ui的时间选择器
  9. 、nohup 不中断后台执行
  10. gpasswd 附属组管理,添加用户到附属组中