←选择平台

RemapHueCommand类

总结
使用查找表更改图像的色调值。只有当一个特定的色调值在Mask属性中被标记为非零时,饱和度和值表才会改变S和V值。它用于所有分辨率,包括48和64位图像。
语法
c#
VB
objective - c
c++
Java
公共RemapHueCommand:RasterCommand
公共RemapHueCommand继承了RasterCommand
@接口LTRemapHueCommand: LTRasterCommand
公共RemapHueCommand扩展RasterCommand
公共ref类RemapHueCommand:公共RasterCommand
讲话
  • 此命令可用于将一个颜色范围更改为另一个颜色范围。例如,它可以用于将所有红色像素更改为任何颜色,其中一个红色像素可以具有任何亮度(V)和任意数量的白色(饱和度)。在这种情况下,红色像素将是RGB(x,y,y),其中0<=x< (LookUpTableLength - 1)和0<= y < x,或者在HSV颜色空间HSV(0,x,x)中,其中0<=x<=(LookUpTableLength - 1)
  • 掩码查找表标识HueTable中哪些值是有效的。如果Mask值为0,则忽略HueTable中对应的值。如果Mask值非零,则使用HueTable中对应的值。例如,如果一个像素的色相值为240,而Mask[240]非零,则240的色相值将被HueTable[240]替换。传统上,色调范围从0到359。对于查找表,0到359的范围被重新映射为0..LookUpTableLength - 1。例如,如果LookUpTableLength = 256
  • 该命令支持48位和64位彩色图像。
  • 该命令不支持签名数据映像。
  • 此命令不支持32位灰度图像。

有关更多信息,请参阅改变亮度和对比度

例子

运行RemapHueCommand在一个图像和改变所有的绿色色调(和色调接近绿色)。

c#
VB
使用Leadtools;使用Leadtools.Codecs;使用Leadtools.ImageProcessing.Color;公共intINCREMENT_S1 (intx,int长度)返回((x + 1) %长度);公共intDECREMENT_S1 (intx,int长度)返回((x +(长度- 1))%长度);公共intADD_S1 (intx,inty,int长度)返回((x + y) %长度);公共无效RemapHueCommandCommandExample ()//加载图像RasterCodecs codecs =RasterCodecs ();编解码器。ThrowExceptionsOnInvalidImages =真正的RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,“cannon.jpg”));//准备命令int[] MaskTable;int[] HueTable;RasterHsvColor hsvRef;intHueGreen HueChange;int变化;int我,计数;int长度;如果(图片。BitsPerPixel >= 48)长度= 0x10000;其他的如果(!(形象。BitsPerPixel == 16 ||图像。BitsPerPixel == 12))长度= 256;其他的如果(image.GetLookupTable () ! =& & image.UseLookupTable)长度= 256;其他的长度= (1 << image.BitsPerPixel);/ /分配表MaskTable =int(长度);HueTable =int(长度);/ /初始化表(i = 0;i <长度;我+ +)MaskTable[i] = 0;HueTable[i] = i;//获取绿色的色调hsvRef = RasterHsvColor。FromRasterColor (RasterColor(0,255,0));HueGreen = hsvRef.H;//获取新的色调hsvRef = RasterHsvColor。FromRasterColor (RasterColor(255,128,0));改变= (int)hsvRef.H - (int) HueGreen;HueChange = (Change > 0) ?(int)变更:(int)(变化+长度- 1);HueGreen *=(长度- 1)/ 255;HueChange *=(长度- 1)/ 255;//设置HueTable, MaskTable中的值HueTable[HueGreen] = (HueTable[HueGreen] + HueChange);MaskTable[HueGreen] = 1;//设置颜色接近绿色(+/- 15)Count =(15 *(长度- 1))/ 255;(i = INCREMENT_S1(HueGreen, Length);计数> 0;i = INCREMENT_S1(i, Length), Count——)HueTable[i] = ADD_S1(HueTable[i], HueChange, Length);MaskTable[i] = 1;Count =(15 *(长度- 1))/ 255;(i = DECREMENT_S1(HueGreen, Length);计数> 0;i = DECREMENT_S1(i, Length), Count——)HueTable[i] = ADD_S1(HueTable[i], HueChange, Length);MaskTable[i] = 1;RemapHueCommand命令=RemapHueCommand (MaskTable HueTable,、长度);command.Run(图片);编解码器。保存(形象,Path.Combine (LEAD_VARS.ImagesDir“Result.jpg”), RasterImageFormat.Jpeg, 24);静态LEAD_VARS公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”
进口Leadtools进口Leadtools。编解码器进口Leadtools.ImageProcessing.Color公共函数INCREMENT_S1 (按值传递x作为整数按值传递长度作为整数作为整数返回(x + 1)国防部长度)结束函数公共函数DECREMENT_S1 (按值传递x作为整数按值传递长度作为整数作为整数返回(x +(长度- 1))国防部长度)结束函数公共函数ADD_S1 (按值传递x作为整数按值传递y作为整数按值传递长度作为整数作为整数返回(x + y)国防部长度)结束函数公共RemapHueCommandCommandExample ()昏暗的编解码器作为RasterCodecs ()编解码器。ThrowExceptionsOnInvalidImages =真正的昏暗的leadImage作为RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,“cannon.jpg”))准备命令昏暗的MaskTable ()作为整数昏暗的HueTable ()作为整数昏暗的hsvRef作为RasterHsvColor昏暗的HueGreen作为整数昏暗的HueChange作为整数昏暗的改变作为整数昏暗的作为整数昏暗的作为整数昏暗的长度作为整数如果(leadImage。BitsPerPixel >= 48)然后长度= 65536ElseIf(leadImage。BitsPerPixel = 16leadImage。BitsPerPixel = 12))然后长度= 256ElseIf(没有(leadImage.GetLookupTable)leadImage.UseLookupTable)然后长度= 256其他的长度= (1 << leadImage.BitsPerPixel)结束如果“分配表ReDimMaskTable(长度- 1)ReDimHueTable(长度- 1)“初始化表I = 0长度- 1MaskTable(i) = 0HueTable(i) = i下一个“把颜色改成绿色hsvRef = RasterHsvColor。FromRasterColor (RasterColor(0,255,0))HueGreen = hsvRef.H获得新的色调hsvRef = RasterHsvColor。FromRasterColor (RasterColor(255, 128, 0))Change = hsvRef.H - HueGreen如果(更改> 0)然后改变其他的HueChange =变化+长度- 1结束如果HueGreen = (HueGreen *(长度- 1))\ 255(HueChange * (Length - 1)) \ 255在HueTable, MaskTable中设置值HueTable(HueGreen) = HueTable(HueGreen) + HueChangeMaskTable(HueGreen) = 1'设置色调接近绿色(+/- 15)i = INCREMENT_S1(HueGreen, Length)=(15 *(长度- 1))\ 2551一步-1i =增量s1 (i,长度)HueTable(i) = ADD_S1(HueTable(i), HueChange, Length)MaskTable(i) = 1下一个i = DECREMENT_S1(HueGreen, Length)=(15 *(长度- 1))\ 2551一步-1i = DECREMENT_S1(i, Length)HueTable(i) = ADD_S1(HueTable(i), HueChange, Length)MaskTable(i) = 1下一个昏暗的命令作为RemapHueCommand =RemapHueCommand (MaskTable HueTable,没有什么没有什么,长度)command.Run (leadImage)编解码器。保存(leadImage Path.Combine (LEAD_VARS.ImagesDir“Result.jpg”), RasterImageFormat.Jpeg, 24)结束公共NotInheritableLEAD_VARS公共常量ImagesDir作为字符串“C: \ LEADTOOLS21 \ Resources \图片”结束
需求

目标平台

Leadtools.ImageProcessing.Color组装
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。