SetDIBitsToDevice是一个函式,该函式使用DIB点阵图和颜色数据对与目标设备环境相关的设备上的指定矩形中的像素进行设定,支持Windows 98和Windows NT 5.0系统。
基本介绍
- 中文名:SetDIBitsToDevice
- Windows NT:3.1
- Windows:95
- Windows CE:支持
函式功能
对于Windows 98和Windows NT 5.0,函式SetDIBitsToDevice已经得到扩展,它允许JPEG图像作为源图像。
函式原型
int SetDIBitsToDevice(HDC hdc, int xDest, int Ydest, DWORD dwWidth, DWORD dwHeight, intXSrc, int Ysrc, UINT uStartScan, UINT cScanLines, CONST VOID *lpvBits, CONST BITMAPINFO *lpbmi, UINT fuColorUse);
参数
hdc:设备环境句柄。
XDest:指定目标矩形左上角的X轴坐标,按逻辑单位表示坐标。
YDest:指字目标矩形左上角的Y轴坐标,按逻辑单位表示坐标。
dwWidth:指定DIB的宽度,按逻辑单位表示宽度。
dwHeight:指定DIB的高度,按逻辑单位表示高度。
XSrc:指定DIB点阵图左下角的X轴坐标,按逻辑单位表示坐标。
YSrc:指定DIB点阵图左下角的Y轴坐标,按逻辑单位表示坐标。
uStartScan:指定DIB中的起始扫描线。
cScanLInes:指定参数lpvBits指向的数组中包含的DIB扫描线数目。
lpvBits:指向存储DIB颜色数据的位元组类型数组的指针。关于更多的信息,请参考下面的备注一节。
lpbmi:指向BITMAPINFO结构的指针,该结构包含有关DIB的信息。
fuColorUse:指向BITMAPINFO结构中的成员bmiColors是否包含明确的RGB值或对调色板进行索引的值。有关更多的信息,请参考下面的备注部分。
参数fuColorUse必须是下列值之一,这些值的含义如下:
DIB_PAL_COLORS:表示颜色表由16位的索引值数组组成,利用这些值可对当前选中的逻辑调色板进行索引。
DIB_RGB_COLORS:表示颜色表包含原义的RGB值。
返回值:如果函式执行成功,那幺返回值是设定的扫描线数目;如果函式失败,那幺返回值为0。
Windows NT:若想获得更多错误信息,请调用GetLastError函式。
Windows 98、NT 5.0及以后版本:如果驱动程式不支持传给SetDIBitsToDevice函式的JPEG档案图像,那幺函式将失败,并返回GDI_ERROR。
备注
当点阵图的位是对系统调色板进行索引时,可获得最佳的点阵图绘製速度。应用程式可以通过调用GetSystemPaletteEntries函式来检索系统调色板的颜色和索引值。在检索到颜色和索引值之后,应用程式可以创建DIB。有关係统调色板方面更多的信息,请参考颜色方面的内容。
自底向上的DIB点阵图的起始点是在该点阵图的左下角,而自顶向下的DIB的起始点是在左上角。
为了减少对大型DIB点阵图的位进行设定所需的记忆体量,应用程式可以通过重複调用SetDIBitsToDevice。每次将点阵图的不同部分放入到lpvBits数组来将输出捆绑在一起。参数uStartScan和cScanLines的值标明了lpvBits数组中包含的点阵图部分。在有一个全萤幕幕MS DOS会话在前台运行时,如果正在后台运行的一个进程调用了SetDIBitsToDevice函式,那幺该函式会返回一个错误。
对于Windows 98、Windows NT 5.0及以后版本;如果BITMAPINFOHEADER中的成员biCompression为BI_JPEG,那幺lpvBits指向一个包含JPEG图像的缓冲区。BITMAPINFOHEADER结构中的成员biSizeimage指定了该缓冲区的大小。参数fuColorUse必须设定为DIB_RGB_COLORS。如果BITMAPV4HEADER中的成员bV4SizeImage指定了该缓冲区的大小。参数fuColorUse必须设为DIB_RGB-COLORS。如果BITMAPV5HEADER结构中的成员bV5Compression为BI_JPEG,那幺参数lpbBits指向一个包含JPEG图像的缓冲区。DITMAPV5HEADER结构中的成员bV5SizeImage指定了该缓冲区的大小,参数fuColorUse必须设为DIB_RGB_COLORS。
ICM:进行颜色管理操作。如果指定的BITMAPINFO结构不是BITMAPV4HEADER或BITMAPV5HEADER,那幺当前设备环境的颜色配置(profile)就当作源颜色配置使用。如果BITMAPINFO结构不是BITMAPV4HEADER或BITMAPV5HEADER,那幺使用RGB颜色。如果指定的BITMAPINFO结构为BITMAPV4HEADER或BITMAPV5HEADER,那幺与该点阵图有关的颜色配置(profile)就用作源颜色。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头档案:wingdi.h:库档案:gdi32.lib。