公共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点
联系我们请填写这张表格,我们将通过电子邮件联系你。