L_ColorizeGrayBitmap

# include“l_bitmap.h”

L_LTIMGCOR_APIL_INTL_ColorizeGrayBitmap (pDstBitmap、pSrcBitmap pGrayColors、uCount uFlags)

颜色一个8、12或16位灰度位图。函数改变了颜色位/像素的位图格式为24位RGB格式指定。

参数

pBITMAPHANDLEpDstBitmap

指针指向的目标位图包含函数的结果。用户应该免费的位图,再将其传递函数。

pBITMAPHANDLEpSrcBitmap

位图句柄指针引用8、12或16位灰度位图。pSrcBitmap不会受到影响。

pLTGRAYCOLORpGrayColors

指针数组LTGRAYCOLOR结构。用户指定数量的条目数组的。你可以通过传递NULL值自动彩色位图在这个变量(在这种情况下uCount将被忽略)。

L_UINTuCount

的条目数量pGrayColors数组中。它可以是任何数,只要它代表pGrayColors正确。1意味着有一个条目,2意味着有两个条目。如果你设置为0,那么该函数将返回一个错误代码。

L_UINT32uFlags

保留以供将来使用。必须是0。

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

评论

函数可以用来作为可视化的援助。更准确地说,这个函数可以用来显示位图强度值的变化。

这个函数颜色的灰度位图将指定范围的灰度强度转化为相应的RGB值。使用pGrayColors变量设置强度范围和RGB值。

使用此函数可以显示原始位图中从未见过的细节。在12和16位灰度位图,仅显示8最重要的部分,而其余的被丢弃。通过着色这些丢弃的部分你可以使其可见。

pDstBitmap被认为是未初始化的。如果pDstBitmap包含位图,调用这个函数之前你应该免费。函数将分配和存储pDstBitmap 24位位图。

如果你传递NULL pGrayColors变量然后函数颜色的位图使用一种算法自动生成唯一的输出颜色。位图的输出将包含256种颜色如果输入8位位图,4096种颜色如果输入位图12位和65535颜色如果输入16位位图。的uCount如果pGrayColors为空变量将被忽略。

你不需要填uStructSize pGrayColors数组的所有元素。你只需要填uStructSize pGrayColors数组中的第一个元素。

下面的示例显示了如何使用16位灰度位图颜色pGrayColors

在一个16位灰度位图,最低的像素值是0,最高的像素值为65535。

从输入将彩色图像的颜色如下:

更多信息填充pGrayColors数组来获得这个结果,参考的例子。

更新状态栏或检测用户中断在执行这个函数,引用L_SetStatusCallback

这个函数支持8、12和16位灰度位图。支持12和16位灰度图像中可用文档和医疗成像工具包。它还可以处理整个图像或一个地区的形象。如果位图有一个地区,效果仅适用于该地区。

这个函数不支持32位灰度图像。它返回错误代码ERROR_GRAY32_UNSUPPORTED如果一个32位的灰度图像是传递给这个函数。

必需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

主题

例子

这个例子中加载一个16位灰度位图,然后颜色。

/ /现在我们已经得到的图像的颜色L_INT ColorizeGrayBitmapExample (L_VOID){L_INT nRet;BITMAPHANDLE GrayBitmap;/ *位图句柄保存源灰度图像。* /BITMAPHANDLE ColorBitmap;/ *位图持有目的地彩色位图的句柄。* /pLTGRAYCOLOR pGrayColors;/ *加载位图,并且将其转换成灰度类型* /nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“IMAGE1.CMP”&GrayBitmap)),运算符(BITMAPHANDLE), 0 ORDER_BGR空,空);如果(nRet ! =成功)返回nRet;nRet = L_GrayScaleBitmap (&GrayBitmap 8);如果(nRet ! =成功)返回nRet;pGrayColors = (pLTGRAYCOLOR malloc ()运算符(LTGRAYCOLOR) * 6);pGrayColors [0]。uStructSize =运算符(LTGRAYCOLOR);pGrayColors [0]。uThreshold = 9999;pGrayColors [0] .crColor。rgbRed = 255;pGrayColors [0] .crColor。rgbGreen = 0;pGrayColors [0] .crColor。rgbBlue = 0;pGrayColors [1]。uThreshold = 19999;pGrayColors [1] .crColor。rgbRed = 0;pGrayColors [1] .crColor。rgbGreen = 255;pGrayColors [1] .crColor。rgbBlue = 0;pGrayColors [2]。uThreshold = 29999;pGrayColors [2] .crColor。rgbRed = 0;pGrayColors [2] .crColor。rgbGreen = 0;pGrayColors [2] .crColor。rgbBlue = 255;pGrayColors [3]。uThreshold = 39999;pGrayColors [3] .crColor。rgbRed = 0;pGrayColors [3] .crColor。rgbGreen = 255;pGrayColors [3] .crColor。rgbBlue = 255;pGrayColors [4]。uThreshold = 49999;pGrayColors [4] .crColor。rgbRed = 255;pGrayColors [4] .crColor。rgbGreen = 0;pGrayColors [4] .crColor。rgbBlue = 255;pGrayColors [5]。uThreshold = 59999;/ /这个值将被忽略pGrayColors [5] .crColor。rgbRed = 255;pGrayColors [5] .crColor。rgbGreen = 255;pGrayColors [5] .crColor。rgbBlue = 0;/ /调用函数nRet = L_ColorizeGrayBitmap (&ColorBitmap, &GrayBitmap pGrayColors 6,0);如果(nRet ! =成功)返回nRet;如果(pGrayColors)免费(pGrayColors);nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“Result.BMP”))、&ColorBitmap FILE_BMP, 24岁,0,NULL);如果(nRet ! =成功)返回nRet;/ /免费的位图如果(ColorBitmap.Flags.Allocated)L_FreeBitmap (&ColorBitmap);如果(GrayBitmap.Flags.Allocated)L_FreeBitmap (&GrayBitmap);返回成功;}

LEADTOOLS光栅成像C API的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。