←Select platform

LeadFillMode Enumeration

Summary
Specifies how a polygonal shape with crossing lines is filled.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public enum LeadFillMode 
typedef NS_ENUM(NSInteger, LTLeadFillMode) { 
 LTLeadFillModeAlternate,  
 LTLeadFillModeWinding 
}; 
public final class LeadFillMode 
    extends java.lang.Enum<LeadFillMode> 
public enum class LeadFillMode   
class LeadFillMode(Enum): 
   Alternate = 0 
   Winding = 1 
Members
ValueMemberDescription
0AlternateThe filled area includes the area between odd-numbered and even-numbered polygon sides on each scan line.
1WindingAll pixels that are inside the resulting exterior lines are filled.
Remarks

The following figure describes how fill mode is used:

Fill Mode
Example
C#
Java
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 AddPolygonToRegionExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
   string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_AddPolygonToRegion.bmp"); 
 
   // Load the image 
   RasterImage image = codecs.Load(srcFileName); 
 
   // Add a polygon region 
 
   RasterRegionXForm xform = new RasterRegionXForm(); 
   xform.ViewPerspective = RasterViewPerspective.TopLeft; 
   xform.XOffset = 0; 
   xform.YOffset = 0; 
   xform.XScalarDenominator = 1; 
   xform.XScalarNumerator = 1; 
   xform.YScalarDenominator = 1; 
   xform.YScalarNumerator = 1; 
 
   int x1 = image.ImageWidth / 4; 
   int y1 = image.ImageHeight / 4; 
   int x2 = image.ImageWidth / 3; 
   int y2 = image.ImageHeight / 3; 
 
   LeadPoint[] pts = 
   { 
   new LeadPoint(x1, y1), 
   new LeadPoint(x2, y1), 
   new LeadPoint(x1, y2), 
   new LeadPoint(x2, y2) 
 }; 
 
   image.AddPolygonToRegion(xform, pts, LeadFillMode.Winding, RasterRegionCombineMode.Set); 
 
   // Draw something on the image 
   InvertCommand command = new InvertCommand(); 
   command.Run(image); 
 
   // Save the image 
   codecs.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 addPolygonToRegionExample() { 
   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_AddPolygonToRegion.bmp"); 
 
   // Load the image 
   RasterImage image = codecs.load(srcFileName); 
 
   // Add a polygon region 
   RasterRegionXForm xform = new RasterRegionXForm(); 
   xform.setRasterViewPerspective(RasterViewPerspective.TOP_LEFT); 
   xform.setXOffset(0); 
   xform.setYOffset(0); 
   xform.setXScalarDenominator(1); 
   xform.setXScalarNumerator(1); 
   xform.setYScalarDenominator(1); 
   xform.setYScalarNumerator(1); 
 
   int x1 = image.getImageWidth() / 4; 
   int y1 = image.getImageHeight() / 4; 
   int x2 = image.getImageWidth() / 3; 
   int y2 = image.getImageHeight() / 3; 
 
   LeadPoint[] pts = { new LeadPoint(x1, y1), new LeadPoint(x2, y1), new LeadPoint(x1, y2), new LeadPoint(x2, y2) }; 
 
   image.addPolygonToRegion(xform, pts, LeadFillMode.WINDING, RasterRegionCombineMode.SET); 
 
   // Draw something on the image 
   InvertCommand command = new InvertCommand(); 
   command.run(image); 
 
   // Save it 
   codecs.save(image, destFileName, RasterImageFormat.BMP, 24); 
 
   // Clean up 
   image.dispose(); 
   codecs.dispose(); 
 
   assertTrue("file unsuccessfully saved to " + destFileName, (new File(destFileName)).exists()); 
   System.out.printf("File saved successfully to %s%n", destFileName); 
} 
Requirements

Target Platforms

See Also

Reference

Leadtools Namespace

Help Version 23.0.2024.5.22
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.