前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >StretchDIBits 的使用

StretchDIBits 的使用

作者头像
全栈程序员站长
发布2022-09-10 17:54:42
4480
发布2022-09-10 17:54:42
举报

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

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)用作源颜色配置。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • StretchDIBits
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档