公共类RemapHueCommand:RasterCommand
公共类RemapHueCommand
继承了RasterCommand
@接口LTRemapHueCommand: LTRasterCommand
公共类RemapHueCommand扩展RasterCommand
公共ref类RemapHueCommand:公共RasterCommand
有关更多信息,请参阅改变亮度和对比度.
运行RemapHueCommand在一个图像和改变所有的绿色色调(和色调接近绿色)。
使用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)然后
长度= 65536
ElseIf(不(leadImage。BitsPerPixel = 16或leadImage。BitsPerPixel = 12))然后
长度= 256
ElseIf(没有(leadImage.GetLookupTable)和leadImage.UseLookupTable)然后
长度= 256
其他的
长度= (1 << leadImage.BitsPerPixel)
结束如果
“分配表
ReDimMaskTable(长度- 1)
ReDimHueTable(长度- 1)
“初始化表
为I = 0来长度- 1
MaskTable(i) = 0
HueTable(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) + HueChange
MaskTable(HueGreen) = 1
'设置色调接近绿色(+/- 15)
i = INCREMENT_S1(HueGreen, Length)
为数=(15 *(长度- 1))\ 255来1一步-1
i =增量s1 (i,长度)
HueTable(i) = ADD_S1(HueTable(i), HueChange, Length)
MaskTable(i) = 1
下一个
i = DECREMENT_S1(HueGreen, Length)
为数=(15 *(长度- 1))\ 255来1一步-1
i = 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)
结束子
公共NotInheritable类LEAD_VARS
公共常量ImagesDir作为字符串=“C: \ LEADTOOLS21 \ Resources \图片”
结束类
帮助收藏
光栅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点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。