# include“l_bitmap.h”
L_LTIMGCLR_APIL_INTL_GrayScaleToMultitone(pBitmap, uToneType, uDistType, pColor, pGradient, uFlags)
将灰度位图转换为彩色位图,方法是用一个或多个新颜色混合或替换像素的原始值。
指向引用位图的位图句柄的指针。
标志,指示要添加到灰度位图的颜色数。可能取值为:
价值 | 意义 |
---|---|
DT_MONOTONE | [0x0000]添加一个颜色。 |
DT_DUOTONE | [0x0001]添加两种颜色。 |
DT_TRITONE | [0x0002]添加三种颜色。 |
DT_QUADTONE | [0x0003]添加四种颜色。 |
标志,指示要添加到位图的颜色的来源。可能取值为:
价值 | 意义 |
---|---|
DT_LINEAR | 使用由暗到亮的线性渐变,由工具箱生成。如果设置了该标志,LEADTOOLS将忽略pGradient 参数,并更新pColor 参数,使用工具箱生成的颜色数组。 |
DT_USERDEFINE | [1]在pGradient参数中使用用户自定义的梯度。 |
指向RGB颜色数组的指针,该数组将被添加到灰度位图中。时,此参数将被忽略uDistType
参数被设置为DT_USER。如果工具箱正在生成渐变颜色,那么当调用L_GrayScaleToMultitone时,用户将在此参数中设置所需的基本颜色。数组中的条目数取决于的值uToneType
DT_MONOTONE为1,DT_DUOTONE为2,DT_TRITONE为3,DT_QUADTONE为4。当工具箱生成渐变颜色数组时,此参数将随该数组一起更新。
指向用户定义的调色板条目数组的指针,该数组将保存一组颜色深浅渐变。当uDistType
参数被设置为DT_USER。
对于每个TONE,该数组中的条目数应该是256个条目。
标志,用于确定新颜色是否替换旧颜色,或者新颜色是否将与旧颜色混合。可能取值为:
价值 | 意义 |
---|---|
DT_MIX | [0x0000]将新旧颜色混合 |
DT_REPLACE | [0x0001]用新的颜色替换旧的颜色 |
价值 | 意义 |
---|---|
成功 | 活动很成功。 |
< 1 | 发生错误。指返回代码. |
此函数不支持签名数据映像。如果将签名数据图像传递给该函数,则返回错误代码ERROR_SIGNED_DATA_NOT_SUPPORTED。
此函数设计用于灰度位图。如果使用的位图不是灰度的,这个函数只影响那些红=绿=蓝的位图像素或区域。
通过设置可以实现单调转换uFlags
到DT_REPLACE,这将清除面板。
这个函数让您可以选择让工具箱生成要使用的颜色数组,或者创建要自己使用的颜色数组。
要让工具箱生成颜色数组:
如果位图是二进制的,调用L_GrayScaleToMultitone, uToneType设置为DT_MONOTONE,uDistType
set为DT_LINEAR,并在pColor中设置你想要使用的颜色。的L_IsGrayScaleBitmap函数将被L_GrayScaleToDuotone调用,以确定所使用的灰度调色板的类型。如果L_IsGrayScaleBitmap返回GRAY_ORDEREDINVERSE或GRAY_NOTORDERED,那么通过pColor参数传递给L_GrayScaleToMultitone的颜色将成为工具箱生成的数组中的第一个颜色,而工具箱将在数组中创建第二个颜色。的pColor
数组将更新为这两种颜色。
如果L_IsGrayScaleBitmap返回的值不是GRAY_ORDEREDINVERSE或GRAY_NOTORDERED,那么通过pColor参数传递给L_GrayScaleToMultitone的颜色将成为工具箱生成的数组中的第二个颜色,而工具箱将在数组中创建第一个颜色。pColor参数将被更新为这两种颜色。
如果位图是灰度(不是二进制)调用L_GrayScaleToMultitone, uDistType设置为DT_LINEAR。L_GrayScaleToMultitone函数将获取pColor参数中传递给它的颜色,并为每种颜色生成256种颜色梯度。
如果uToneType设置为DT_DUOTONE,则在pColor参数中设置两种颜色。该工具包将为每种颜色创建一个256色数组。pColor数组将更新为所有512种颜色。
如果uToneType
设置为DT_TRITONE时,在pColor
参数。该工具包将为每种颜色创建一个256色数组。pColor数组将更新为所有768种颜色。
如果uToneType设置为DT_QUADTONE,则在pColor参数中设置四种颜色。该工具包将为每种颜色创建一个256色数组。pColor数组将更新为所有1024种颜色。
如果位图不是灰度的(它是彩色的)调用L_GrayScaleToMultitone withuDistType
设置为DT_LINEAR。函数L_GrayScaleToMultitone将获取在pColor
参数,并为每种颜色生成256色梯度。(详见上文(b)第i、ii及iii部分的详细解释。)这些颜色将只用于改变彩色图像中红色=绿色=蓝色的像素。
使用用户定义的颜色数组:
如果位图是二进制的,调用L_GrayScaleToMultitone,将uToneType设置为DT_MONOTONE, uDistType设置为DT_USER,并将两种颜色设置为pGradient
参数。
如果位图是灰度(不是二进制)调用L_GrayScaleToMultitone, uDistType设置为DT_USER。
如果uToneType设置为DT_DUOTONE,则在pGradient参数中设置512种颜色(每种基本颜色256种)。
如果uToneType设置为DT_TRITONE,在pGradient参数中设置768种颜色(每种基本颜色256种)。
如果uToneType
设置为DT_QUADTONE时,设置1024种颜色(每个基本颜色256种)pGradient
参数。
如果位图不是灰度的(它是彩色的)调用L_GrayScaleToMultitone withuDistType
设置为DT_USER。(详见上文(b)第i、ii及iii部分的详细解释。)这些颜色将只用于改变彩色图像中红色=绿色=蓝色的像素。
该功能支持12位和16位灰度和48位和64位彩色图像。支持12位和16位灰度以及48位和64位彩色图像文件和医疗成像工具包。
此函数不支持32位灰度图像。如果将32位灰度图像传递给该函数,则返回错误代码ERROR_GRAY32_UNSUPPORTED。
必需的dll和库
Win32, x64, Linux。
下面的示例加载一个位图,并对其应用Duotone转换。
L_INT GrayScaleToMultitoneExample (L_VOID)
{
L_INT nRet;
BITMAPHANDLE LeadBitmap;/*存放加载图像的位图句柄。* /
也就是说crColor [2];/*新颜色*/
/*加载位图,保持文件的每像素位
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT(“ImageProcessingDemo \ \ Beauty16.jpg”&LeadBitmap)),运算符(bitmaphandle), 0, order_bgr, null, null);
如果(nRet ! =成功)
返回nRet;
/*将位图改为灰度位图*/
nRet = L_GrayScaleBitmap (&LeadBitmap, 8);
如果(nRet ! =成功)
返回nRet;
/ /免费的位图
/*新颜色*/
crColor[0] = RGB(255,255,0);
crColor[1] = RGB(255,0,0);
/*应用多音转换*/
nRet = L_GrayScaleToMultitone(&LeadBitmap, DT_DUOTONE, DT_LINEAR, crColor, NULL, DT_MIX);
如果(nRet ! =成功)
返回nRet;
L_SaveBitmap(MAKE_IMAGE_PATH(TEXT)“Result.BMP”)), &LeadBitmap, FILE_BMP, 24, 0, NULL);
如果(nRet ! =成功)
返回nRet;
/ /免费的位图
如果(LeadBitmap.Flags.Allocated)
L_FreeBitmap (&LeadBitmap);
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。