在LEADTOOLS中使用颜色值

COLORREF的标准Windows值表示红色、绿色和蓝色的颜色值,或者图像调色板的索引。格式为0x00BBGGRR的COLORREF值表示指定像素的蓝色、绿色和红色值,其中0xBB是蓝色值,0xGG是绿色值,0xRR是红色值。如果在COLORREF值(0x010000ZZ)中设置了0x01000000,那么下面的8位(0xZZ)表示图像调色板的索引,其中包含颜色值。这些COLORREF值可以用于任何带有COLORREF参数的Windows函数和宏。请注意,仅仅因为图像有一个调色板,这并不意味着返回的COLORREF值自动是一个索引。

.NET的LEADTOOLS使用Leadtools。光栅Color结构来指定颜色。属性可以将这些结构转换为Windows COLORREF值RasterColor。ToArgb方法。您还可以创建一个Leadtools。光栅Color对象从COLORREF中获取RasterColor。FromArgb方法。

文档/医学影像,则COLORREF值可以表示16位灰度值Leadtools。光栅Image是12位或16位灰度图像。为了使该值不会与RGB值混淆,设置了掩码(0x04000000)。在本例中(0x0400YYYY), COLORREF值的下16位(0xYYYY)表示16位灰度值。这不是一个标准的Windows值。因此,LEADTOOLS方法将识别具有这种格式的COLORREF,但Windows函数不会。要在非leadtools函数中使用这种类型的COLORREF值,必须执行以下操作:

c#
intGetColorRef (RasterImage形象,intx,inty)RasterColor color =图像。GetPixelColor (x, y);//转换为Windows COLORREFintclrref = color.ToArgb();常量intCOLORREF_GRAY16 = 0x04000000;如果((clrref & COLORREF_GRAY16) == COLORREF_GRAY16)//非标准的COLORREF值,将其转换为windows的COLORREF//得到一个对应于16位灰度值的8位灰度值字节灰色= (字节((clrref & 0xFFFF) >> 8);//使用标准的Windows RGB宏来获得一个Windows COLORREFclrref = RGB(灰色,灰色,灰色);返回clrref;静态intRGB (字节r,字节克,字节b)返回(r | (g << 8)) | (b << 16);

LEADTOOLS成像、医疗和文档
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。