GetRegionClipSegments Method (original) (raw)

Summary

Gets the segments contained in the region for a particular row.

Syntax

C#

Objective-C

C++/CLI

Java

Python

- (NSUInteger)regionClipSegmentsForRow:(NSInteger)_row_ segmentsBuffer:(unsigned int *)buffer

public int getRegionClipSegments( int intValue, int[] int[Value, int intValue2 );

Parameters

row
The number of the row for which to get the segments. The first row is 0, and the last row is 1 less than the image height.

segmentsBuffer
Buffer to be updated with the segments from row contained in the region.

segmentsBufferOffset
Zero based index into segmentsBuffer.

Return Value

The number of segments from row that are contained in the region.

Example

This example sets the value of pixels inside a region to half intensity.

using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Core; using Leadtools.ImageProcessing.Color; using Leadtools.Dicom; using Leadtools.Drawing; using Leadtools.Controls; using Leadtools.Svg; public void GetRegionClipSegmentsExample() { RasterCodecs codecs = new RasterCodecs(); string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_GetRegionClipSegments.bmp"); // Load the image RasterImage image = codecs.Load(srcFileName); // Add a region to the image LeadRect rc = new LeadRect(image.Width / 3, image.Height / 3, image.Width / 3, image.Height / 3); image.AddEllipseToRegion(null, rc, RasterRegionCombineMode.Set); // Set the pixels inside the region to black // Get the maximum number of elements in a row, // so we know how big the array of segments should be int maxClipSegments = image.CalculateRegionMaximumClipSegments(); // Get the region bounds, so we know which is the first row LeadRect rgnBounds = image.GetRegionBounds(null); // Allocate an array large enough to store the maximum number of segments. int[] segmentBuffer = new int[maxClipSegments]; // Loop through the region rows for (int y = rgnBounds.Top; y < rgnBounds.Bottom; y++) { // Get the segments for the row image.GetRegionClipSegments(y, segmentBuffer, 0); // Do something with the pixels for (int i = 0; i < maxClipSegments / 2; i++) { for (int j = segmentBuffer[i]; j < segmentBuffer[i + 1]; j++) { RasterColor clr = image.GetPixelColor(y, j); clr = new RasterColor(clr.R / 2, clr.G / 2, clr.B / 2); image.SetPixelColor(y, j, clr); } } } // Save the image back to file codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24); image.Dispose(); codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; }

Leadtools Assembly

Convert(byte[],int,int,int,int,RasterByteOrder,RasterByteOrder,RasterColor[],RasterColor[],int,int,int,RasterConvertBufferFlags) Method

Convert(byte[],int,int,int,int,RasterByteOrder,RasterByteOrder,RasterColor[],RasterColor[],RasterColor16[],RasterColor16[],int,int,int,RasterConvertBufferFlags) Method

Convert(IntPtr,int,int,int,RasterByteOrder,RasterByteOrder,RasterColor[],RasterColor[],int,int,int,RasterConvertBufferFlags) Method

Convert(IntPtr,int,int,int,RasterByteOrder,RasterByteOrder,RasterColor[],RasterColor[],RasterColor16[],RasterColor16[],int,int,int,RasterConvertBufferFlags) Method