当前位置: 首页 > article >正文

StretchDIBits函数

 函数功能:该函数将DIB中矩形区域内像素使用的颜色数据拷贝到指定的目标矩形中。如果目标矩形比源矩形大小要大,那么函数对颜色数据的行和列进行拉伸,以与目标矩形匹配。如果目标矩形大小要比源矩形小,那么该函数通过使用指定的光栅操作对行列进行压缩。

  函数原型:int StretchDIBits(HDC hdc, int XDest , int YDest , int nDestWidth, int nDestHeight, int XSrc, int Ysrc, int nSrcWidth, int nSrcHeight, CONST VOID *lpBits, CONST BITMAPINFO * lpBitsInfo, UINT iUsage, DWORD dwRop);

  参数:

  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_COLOR:表示该数组包含对源设备环境的逻辑调色板进行索引的16位索引值。

  DIB_RGB_COLORS:表示该颜色表包含原义的KGB值,若想了解更多的信息,请参考下面备注一节。

  dwRop:指定源像素点、目标设备环境的当前刷子和目标像素点是如何组合形成新的图像。若想了解更多信息,请参考下面的备注一节。

  返回值:如果函数执行成功,那么返回值是拷贝的扫描线数目,如果函数执行失败,那么返回值是GDI_CRROR。

  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。

  如果BITMAPV4HEADER结构中的成员bV 4Compression为BI_JPEG,那么参数lpBits指向的是一个包含JPEG图像的缓冲区。BITMPV4HEADER结构中的bV4SizeImage成员指定了该缓冲区的大小。参数iUsage必须设为DIB_RGB_COLORS。参数dwRop必须设为SRCCOPY。

  如果BITMAPV5HEADER结构中的成员bV 5Compression为BI_JPEG,那么参数lpBits指向的是一个包含JPEG图像的缓冲区。BITMPV5HEADER结构中的bV5SizeImage成员指定了该缓冲区的大小。参数iUsage必须设为DIB_RGB_COLORS。dwRop必须设为SRCCOPY。

  为确保打印时可以有正确的图元文件假脱机操作。应用程序应在调用StretchDIBits函数之前调用CHECKJPEGFORMAT转义符,以确认打印机识别JPEG图像。

  ICM:执行颜色管理。如果指定的BITMAPINFO结构中的bmiHeader不包含BITMAPV4HEADER或BITMAPV5HEADER,那么当前设备环境的颜色配置(profile)被用作源颜色配置(profile)。如果没有颜色档案,那么就使用RGB。如果指定的BITMAPINFO结构中的成员bmiHeader包含了BITMAPV4HEADER或BITMAPV5HEADER,那么将把位图标头中指定的颜色配置(profile)用作源颜色配置。

  速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:wingdi.h:库文件:gdi32.lib。

http://www.lryc.cn/news/2418967.html

相关文章:

  • 人工智能--产生式表示法
  • VC-终止线程,ExitThread函数,TerminateThread函数,撤消线程,详解
  • eclipse-che01 安装eclipseche
  • 计算机网络自学指南,怒推荐一波,简直太全面了!
  • 小米更新显示非官方rom_魔趣ROM 安装刷入教程(小白新手)
  • 多路径软件常用操作(MPIO)
  • C语言学生成绩信息管理系统(超详细版)
  • OpenProcessToken
  • 前端框架Layui学习五:弹出层和数据表格
  • 原神童梦的切片解密攻略
  • VMware虚拟机安装Linux教程(超详细) | 阿里龙蜥OS (CentOS替代品)
  • 实战中绕过disable_functions执行命令
  • 有关软件开发中的项目管理:关键性问题解答(一)
  • CSDN 居然偷偷干了这件事,VIP会员真香,速度还不错
  • PHP基础编程
  • 猪猪猫Windows7 X86旗舰中文装机版V0911
  • JVM学习记录
  • 三款图形化的SQL查询分析器工具推荐
  • 深入理解LTE-A 学习笔记(1)
  • 安卓dialer Phone进程【Telephony框架、TeleService】启动过程
  • [Python]网络爬虫(三):使用cookiejar管理cookie 以及 模拟登录知乎
  • 《SEO实战密码》笔记①-了解搜索引擎
  • document.all的用法
  • Kotlin入门(4)声明与操作数组
  • JS基本特效 -- 常见40个常用的js页面效果图(转载)
  • maven从下载到安装--详细版
  • 判断文件夹是否存在的方法
  • 代码详解C#比较时间的三种方法
  • 时间序列 R 09 ARIMA
  • 用php中的ignore_user_abort与register_shutdown_function