SetDIBits

更新时间:2022-03-27 14:37

SetDIBits是一种颜色数据来设置位图中的像素的函数。

函数功能

该函数使用指定的DIB位图中发现的颜色数据来设置位图中的像素。

函数原型

int SetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, CONST VOID *lpvBits,CONST BITMAPINFO *lpbmi, UINT fuColorUse);

参数

hdc:指向设备环境中的句柄。

hbmp:指向位图的句柄。函数要使用指定DIB中的颜色数据对该位图进行更改。

uStartScan:为参数lpvBits指向的数组中的、与设备无关的颜色数据指定起始扫描线

cScanLines:为包含与设备无关的颜色数据的数组指定扫描线数目。

lpvBits:指向DIB颜色数据的指针,这些数据存储在字节类型的数组中,位图值的格式取决于参数lpbmi指向的BITMAPINFO结构中的成员biBitCount。

lpbmi:指向BITMAPINFO数据结构的指针,该结构包含有关DIB的信息。

fuColorUse:指定是否提供了BITMAPINFO结构中的bmiColors成员,如果提供了,那么bmiColors是否包含了明确的RGB值或调色板索引。参数fuColorUse必须取下列值,各值的含义为:

DIB_PAL_COLORS:颜色表由16bit的索引值数组组成。这些值可以对由hdc参数标识的设备环境中的逻辑调色板进行索引。

DIB_RGB_COLORS:提供了颜色表,并且表中包含了原义的RGB值。

返回值

如果函数成功,那么返回值就是复制的扫描线数;如果函数失败,那么返回值是0。

Windows NT:若想获得更多错误信息,请调用GetLastError函数。

其他信息

位图的位要索引到系统调色板时,可获取最佳的位图绘制速度。

应用程序可能通过调用GetSystemPaletteEntries函数来检索系统调色板颜色和索引。在检索到颜色和索引值之后,应用程序可以创建DIB,有关更多的信息,请参考系统调色板(System Paletle)。

只有在参数fuColorUse设置为DIB_PAL_COLORS常量时才使用参数hdc标识的设备环境,否则会忽略hdc参数中的值。

在应用程序调用该函数时,必须把由参数hbmp标识的位图选入到设备环境中。

自底向上的DIB位图的起始点是该位图的左下角处,自顶向下的DIB位图的起源点在该位图的左上角处。

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。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}