公共intGetRegionClipSegments (int行,int[]segmentsBuffer,intsegmentsBufferOffset)
公共函数GetRegionClipSegments (_按值传递行作为整数,_按值传递segmentsBuffer()作为整数,_按值传递segmentsBufferOffset作为整数_)作为整数
——(了NSUInteger) regionClipSegmentsForRow:(NSInteger)行segmentsBuffer:(无符号int*)缓冲区
公共intgetRegionClipSegments (int行,int[]segmentsBuffer,intsegmentsBufferOffset)
公共:intGetRegionClipSegments (int行,数组<int> ^segmentsBuffer,intsegmentsBufferOffset)
行
的行数段。是0,第一行和最后一行1小于图像高度。
segmentsBuffer
缓冲区更新的部分行包含在该地区。
segmentsBufferOffset
零基础索引segmentsBuffer。
段的数量行包含在该地区。
使用这种方法,第一个电话GetRegionBounds与图形变换设置为零,得到图像的边界。的边界矩形将指示行包含在该地区。经历的所有行中包含的区域中包含的部分地区。
双段作为一个数组返回的水平偏移量。第一点在两段的开始(它包含在该地区)。最后一点在这两段的结束。按照Windows规则,段的结束是第一点不包含在该地区。
在大多数地区,将会有一段行。然而,一些地区可以有0 1 2个或更多的部分。
例如,假设为一个特定的行有两个片段。segmentsBuffer将满4的值。让我们称之为x0, x1, x2, x3。在这种情况下:
这个示例区域内像素的值设置为强度的一半。
使用Leadtools;使用Leadtools.Codecs;使用Leadtools.ImageProcessing;使用Leadtools.ImageProcessing.Core;使用Leadtools.ImageProcessing.Color;使用Leadtools.Dicom;使用Leadtools.Drawing;使用Leadtools.Controls;使用Leadtools.Svg;公共无效GetRegionClipSegmentsExample (){RasterCodecs编解码器=新RasterCodecs ();字符串srcFileName = Path.Combine (LEAD_VARS.ImagesDir,“Image1.cmp”);字符串destFileName = Path.Combine (LEAD_VARS.ImagesDir,“Image1_GetRegionClipSegments.bmp”);/ /加载图像RasterImage图像= codecs.Load (srcFileName);/ /添加一个地区的形象LeadRect rc =新LeadRect(图片。宽度/ 3, image.Height / 3, image.Width / 3, image.Height / 3);image.AddEllipseToRegion (零、rc RasterRegionCombineMode.Set);/ /设置区域内的像素为黑色/ /获得最大的连续的元素个数,/ /我们知道多大的数组片段intmaxClipSegments = image.CalculateRegionMaximumClipSegments ();/ /得到该地区范围,所以我们知道这是第一行LeadRect rgnBounds = image.GetRegionBounds (零);/ /分配足够大的数组来存储段的最大数量。int[]segmentBuffer =新int[maxClipSegments];/ /遍历行为(inty = rgnBounds.Top;y < rgnBounds.Bottom;y + +){/ /得到连续的片段的形象。GetRegionClipSegments (y segmentBuffer 0);/ /做某事的像素为(int我= 0;我< maxClipSegments / 2;我+ +){为(intj = segmentBuffer[我];j < segmentBuffer (i + 1);j + +){RasterColor clr =形象。GetPixelColor (y, j);clr =新RasterColor (clr。R / 2, clr。G / 2, clr。B / 2);的形象。集PixelColor(y, j, clr);}}}/ /保存图像文件编解码器。保存(图像、destFileName RasterImageFormat。Bmp、24);image.Dispose ();codecs.Dispose ();}静态类LEAD_VARS{公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”;}
进口Leadtools进口Leadtools.Codecs进口Leadtools.ImageProcessing进口Leadtools.ImageProcessing.Core进口Leadtools.ImageProcessing.Color进口Leadtools.Controls进口Leadtools.Dicom进口Leadtools.Drawing进口Leadtools.Svg公共子GetRegionClipSegmentsExample ()昏暗的编解码器作为RasterCodecs =新RasterCodecs ()昏暗的srcFileName作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Image1.cmp”)昏暗的destFileName作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Image1_GetRegionClipSegments.bmp”)“加载图片昏暗的图像作为RasterImage = codecs.Load (srcFileName)“添加一个地区的形象昏暗的钢筋混凝土作为LeadRect =新LeadRect(图片。宽度\ 3, image.Height \ 3, image.Width \ 3, image.Height \ 3)image.AddEllipseToRegion (没有什么、rc RasterRegionCombineMode。集)黑色的设置区域内的像素连续的元素的最大数量,“我们知道数组段应该多大昏暗的maxClipSegments作为整数= image.CalculateRegionMaximumClipSegments ()的区域范围,所以我们知道这是第一行昏暗的rgnBounds作为LeadRect = image.GetRegionBounds (没有什么)“分配一个足够大的数组来存储段的最大数量。昏暗的segmentBuffer作为整数()=新整数(maxClipSegments - 1) {}该地区的循环行昏暗的y作为整数= rgnBounds.Top做而y < rgnBounds.Bottom”段为行的形象。GetRegionClipSegments (y, segmentBuffer, 0)“做一些像素昏暗的我作为整数= 0做而我< maxClipSegments / 2昏暗的j作为整数= segmentBuffer(我)做而j < segmentBuffer (i + 1)昏暗的clr作为RasterColor =形象。GetPixelColor (y, j)clr =新RasterColor (clr。R \ 2, clr。G \ 2, clr。B \ 2)的形象。集PixelColor(y, j, clr)j + = 1循环我+ = 1循环y + = 1循环“保存图像文件编解码器。保存(图像、destFileName RasterImageFormat。Bmp, 24)image.Dispose ()codecs.Dispose ()结束子公共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
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。
