L_ConvertToDIB

# include“l_bitmap.h”

L_LTKRN_API L_HDIB L_ConvertToDIB(pBitmap, uType)

将LEAD Technologies位图转换为Windows设备独立位图(DIB)。当这个函数完成时,内存中有两个图像副本:DIB和原始LEAD位图。释放一个不会影响另一个。

参数

pBITMAPHANDLEpBitmap

指向引用要更改的位图的位图句柄的指针。

L_UINTuType

标志,指示要创建的DIB的类型。可能取值为:

价值 意义
DIB_BITMAPINFOHEADER [0]使用BITMAPINFOHEADER的DIB
DIB_BITMAPV4HEADER [1]使用BITMAPV4HEADER的DIB。(windows95及windowsnt4.0已引入)
DIB_BITMAPV5HEADER [2]使用BITMAPV5HEADER的DIB (Windows 2000、Windows 98引入)

返回

此函数将返回DIB的句柄。

评论

该函数分配一个DIB位图,并将LEAD位图复制到DIB。

DIB包括以下其中一项:

接着是颜色表,然后是位图数据。属性的值决定所得到的DIB类型uType国旗。

图像的方向和颜色顺序取决于如何将图像加载到LEAD位图中。

如果要使用相同的位图句柄加载另一个图像,则必须再次初始化该位图句柄。

当您不再需要DIB时,可以使用Windows GlobalFree函数释放它。

必需的dll和库

平台

Win32, x64, Linux。

另请参阅

功能

主题

例子

完整的示例代码请参阅DIBDDB
的例子。
本例获取一个LEAD位图,将其转换为V5 DIB并写入
将DIB作为位图文件输出

# include < fcntl.h >静态L_INT MySaveFile(HGLOBAL hDIB,L_TCHAR * pszFileName)DWORD dwSize;处理外交政策;L_UCHAR * pDIB;BITMAPFILEHEADER bfh;PBITMAPINFOHEADER pbih;L_SIZE_T zDIBsize;zDIBsize = GlobalSize(hDIB);bfh。bfType = 0x4d42;/ /“BM”;bfh。bfSize = (DWORD) (运算符(BITMAPFILEHEADER) + zDIBsize);bfh。bfReserved1 = 0;bfh。bfReserved2 = 0;pDIB = (L_UCHAR *)GlobalLock(hDIB);pbih = (PBITMAPINFOHEADER)pDIB;//计算颜色索引数组的偏移量。bfh。bfOffBits = (DWORD)运算符(BITMAPFILEHEADER) +pbih->biSize + pbih->biClrUsed * .运算符(RGBQUAD);fp = CreateFile(pszFileName, GENERIC_WRITE | GENERIC_READ, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);如果(fp == 0)返回虚假的;WriteFile (fp、&bfh运算符(BITMAPFILEHEADER), &dwSize, NULL);WriteFile(fp, pDIB, (L_UINT) zDIBsize, &dwSize, NULL);CloseHandle (fp);GlobalUnlock (hDIB);返回真正的;L_INT converttodibeexample (pBITMAPHANDLE pBitmap,L_TCHAR* pszFileName)HGLOBAL hDIB;hDIB = L_ConvertToDIB(pBitmap, DIB_BITMAPINFOHEADER);MySaveFile (hDIB pszFileName);GlobalFree (hDIB);返回成功;

栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。