StretchDIBits 的使用

StretchDIBits 的使用StretchDIBits 该函数将DIB中矩形区域内像素使用的颜色数据拷贝到指定的目标矩形中。如果目标矩形比源矩形大小要大,那么函数对颜色数据的行和列进行拉伸,以与目标矩形匹配。如果目标矩形大小要比源矩形小,那么该函数通过使用指定的光栅操作对行列进行压缩。参数:hdc:指向目标设备环境的句柄。XDest:指定目标矩形左上角位置的X轴坐标,按

大家好,又见面了,我是你们的朋友全栈君。

StretchDIBits

 


该函数将DIB中矩形区域内像素使用的颜色数据拷贝到指定的目标矩形中。如果目标矩形比源矩形大小要大,那么函数对颜色数据的行和列进行拉伸,以与目标矩形匹配。如果目标矩形大小要比源矩形小,那么该函数通过使用指定的光栅操作对行列进行压缩。
参数:
hdc:指向目标设备环境的
句柄
XDest:指定目标矩形左上角位置的X轴坐标,按逻辑单位来表示坐标。
YDest:指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标。
nDestWidth:指定目标矩形的宽度。
nDestHeight:指定目标矩形的高度。
XSrc:指定
DIB中源矩形(左上角)的X轴坐标,坐标以像素点表示。
YSrc:指定DIB中源矩形(左上角)的Y轴坐标,坐标以像素点表示。
nSrcWidth:按像素点指定DIB中源矩形的宽度。
nSrcHeight:按像素点指定DIB中源矩形的高度。
lpBits:指向DIB位的
指针,这些位的值按字节类型
数组存储,有关更多的信息,参考下面的备注一节。
lpBitsInfo:指向BITMAPINFO结构的指针,该结构包含有关DIB方面的信息。
iUsage:表示是否提供了BITMAPINFO结构中的成员bmiColors,如果提供了,那么该bmiColors是否包含了明确的
RGB值或索引。参数iUsage必须取下列值,这些值的含义如下:
DIB_PAL_COLORS:表示该数组包含对源设备环境的逻辑
调色板进行索引的16位索引值。
DIB_RGB_COLORS:表示该颜色表包含原义的RGB值,若想了解更多的信息,请参考下面备注一节。
dwRop:指定源像素点、目标设备环境的当前刷子和目标像素点是如何组合形成新的图像。若想了解更多信息,请参考下面的备注一节。
返回值:如果函数执行成功,那么返回值是拷贝的扫描线数目,如果函数执行失败,那么返回值是GDI_ERROR。
Windows NT:若想获取更多错误信息,请调用GetLastError函数。
Windows 98、Windows NT 5.0及以后版本:如果
设备驱动程序不支持传送给StretchDIBits的JPEG文件格式的图像,则该函数将失败,并返回GEI_ERROR。
备注:自底向上的DIB的起始点为左下角,自顶向下DIB的起始点为左上角。
如果nSrcWidth和nDestWidth参数的符号不同。或是nSrcHeight和nDesHeight参数的符号不同。那么函数StretchDIBits将创建位图的
镜像。如果NsrcWidth和NdestWidth符号不同,那么函数将沿着X轴创建位图镜像。如果NsrcHeight和NdestHeight符号不同,那么函数将沿着Y轴创建位图镜像。
对于Windows 98、Windows NT 5.0及以后版本:该函数允许将
JPEG图像用作
源图像,每个参数如何使用其实仍是一样的。
如果BITMAPINFOHEADER结构中的成员biCompression为BI_JPEG,那么参数lpBits指向的是一个包含JPEG图像的
缓冲区。BITMAPINFOHEADER结构中的biSizeImage成员指定了该缓冲区的大小。参数iUsage必须设为DIB_RGB_COLORS。dwRop必须设为SRCCOPY。
为确保打印时可以有正确的
图元文件假脱机操作。应用程序应在调用StretchDIBits函数之前调用CHECKJPEGFORMAT转义符,以确认打印机识别JPEG图像。
ICM:执行颜色管理。如果指定的BITMAPINFO结构中的bmiHeader不包含BITMAPV4HEADER或BITMAPV5HEADER,那么当前设备环境的颜色配置(profile)被用作源颜色配置(profile)。如果没有颜色档案,那么就使用RGB。如果指定的BITMAPINFO结构中的成员bmiHeader包含了BITMAPV4HEADER或BITMAPV5HEADER,那么将把位图标头中指定的颜色配置(profile)用作源颜色配置。
StretchDIBits 的使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149711.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 车载以太网之 DHCP协议「建议收藏」

    车载以太网之 DHCP协议「建议收藏」车载以太网与传统以太网的主要区别在于二者的物理层,前者的物理层采用一对双绞线的100BASE-T1,而后者的物理层采用两对双绞线的方式,比如100BASE-TX。而二层以上的协议栈,车载网络则基本借鉴传统网络,区别并不大。下图是基于车载以太网的车载网络所使用的各种通信协议,在这篇文章中我将简要介绍一下位于7层上的DHCP协议。车载以太网涉包含的各种协议DHCP的全称是DynamicHostConfigurationProtocol,翻译作动态主机配置协议。它的用途是为网络节点自动配置I

    2022年5月23日
    116
  • Flask中jsonify和json.dumps用法以及区别(简单案例)[通俗易懂]

    Flask中jsonify和json.dumps用法以及区别(简单案例)[通俗易懂]环境:python3.6,Flask1.0.3flask提供了jsonify函数供用户处理返回的序列化json数据,而python自带的json库中也有dumps方法可以序列化json对象.其二者的区别,写个简单的案例实测一下便见分晓。fromflaskimportFlaskfromflaskimportjsonifyimportjsonapp=F…

    2022年5月10日
    36
  • 经典SQL练习题(MySQL版)

    经典SQL练习题(MySQL版)原文首发于简书于[2018.07.30]网上有一篇关于SQL的经典文章,超经典SQL练习题,做完这些你的SQL就过关了,引用和分析它的人很多,于是今天复习SQL的时候找来练了练手。原作者用的是SQLServer2008,我在这里用的是MySQL8.0.11(二者语法差别不大),文本编辑器用的是Atom1.28.2(不知道大家用什么,反正用Atom写SQL确实丝质顺滑)。题目顺序…

    2022年5月26日
    60
  • Vue.js高效前端开发 • 【初识Vue.js】

    1.1Vue概述1.1.1Web前端框架介绍近几年,互联网前端行业发展得依旧迅猛,涌现出了很多优秀的JavaScript框架,同时这些JavaScript框架也正在逐渐改变统的前端开发方式。在这些新出现的JavaScript框架中,最具代表性的框架有Angular.js、React.js和Vue.js。1.1.2MVC和MVVMMVC是著名的设计模式,基本思想是将软件结构分解为Model(模型)、View(视图)和Controller(控制器)三部分组成。Model:主要负责数据处理和

    2022年4月9日
    33
  • 很黄很暴力「建议收藏」

    很黄很暴力「建议收藏」 http://hen.huang.hen.bao.li/这网站有点意思,某种程度上起点舆论监督的作用吧既然你诚心诚意地问了,我们就大慈大悲地告诉你,为了防止世界被破坏,为了维护世界的和平,贯彻爱与真实的罪恶,可爱而又迷人的反派网站,很黄!很暴力!我们是穿梭在墙外的敢死队,互联网的明天等着我们,就是这样,喵!

    2022年10月14日
    0
  • java多线程—java线程的创建和线程的生命周期

    java线程的创建和线程的生命周期

    2022年2月24日
    46

发表回复

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

关注全栈程序员社区公众号