public int CalculateRegionMaximumClipSegments() @property (nonatomic, assign, readonly) NSUInteger maximumClipSegmentsForRegion public int calculateRegionMaximumClipSegments(); public:int CalculateRegionMaximumClipSegments();
def CalculateRegionMaximumClipSegments(self):
The maximum number of segments in a row within the region.
Use this method in conjunction with GetRegionClipSegments.
For more information, refer to Working with the Existing Region.
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 imageRasterImage image = codecs.Load(srcFileName);// Add a region to the imageLeadRect 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 beint maxClipSegments = image.CalculateRegionMaximumClipSegments();// Get the region bounds, so we know which is the first rowLeadRect 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 rowsfor (int y = rgnBounds.Top; y < rgnBounds.Bottom; y++){// Get the segments for the rowimage.GetRegionClipSegments(y, segmentBuffer, 0);// Do something with the pixelsfor (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 filecodecs.Save(image, destFileName, RasterImageFormat.Bmp, 24);image.Dispose();codecs.Dispose();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}
import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.junit.*;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;import static org.junit.Assert.*;import leadtools.*;import leadtools.codecs.*;import leadtools.imageprocessing.core.*;import leadtools.svg.*;import leadtools.imageprocessing.CloneCommand;import leadtools.imageprocessing.FillCommand;import leadtools.imageprocessing.FlipCommand;import leadtools.imageprocessing.GrayscaleCommand;import leadtools.imageprocessing.color.InvertCommand;import leadtools.imageprocessing.color.PosterizeCommand;public void getRegionClipSegmentsExample() {final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";RasterCodecs codecs = new RasterCodecs();String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp");String destFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1_GetRegionClipSegments.bmp");// Load the imageRasterImage image = codecs.load(srcFileName);// Add a region to the imageLeadRect rc = new LeadRect(image.getWidth() / 3, image.getHeight() / 3, image.getWidth() / 3,image.getHeight() / 3);image.addEllipseToRegion(null, rc, RasterRegionCombineMode.SET);// Set the pixels inside the region to blackassertTrue(rc.getLeft() == (image.getWidth() / 3));// Get the maximum number of elements in a row,// so we know how big the array of segments should beint maxClipSegments = image.calculateRegionMaximumClipSegments();// Get the region bounds, so we know which is the first rowLeadRect 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 rowsfor (int y = rgnBounds.getTop(); y < rgnBounds.getBottom(); y++) {// Get the segments for the rowimage.getRegionClipSegments(y, segmentBuffer, 0);// Do something with the pixelsfor (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 filecodecs.save(image, destFileName, RasterImageFormat.BMP, 24);// Clean upimage.dispose();codecs.dispose();assertTrue("file unsuccessfully saved to " + destFileName, (new File(destFileName)).exists());System.out.printf("File saved successfully to %s%n", destFileName);}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
