←Select platform

Transform Method

Summary
Transforms this RasterRegion by the specified RasterRegionXForm.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public void Transform( 
   RasterRegionXForm xform 
) 
- (BOOL)transform:(LTRasterRegionXForm *)xform error:(NSError **)error 
public void transform( 
   RasterRegionXForm xform 
); 
public: 
void Transform(  
   RasterRegionXForm^ xform 
)  
def Transform(self,xform): 

Parameters

xform
The RasterRegionXForm by which to transform this region

Remarks

The RasterRegionXForm.ViewPerspective member of  xform is ignored by this method. For more information, refer to RasterRegionXForm.

Example

This example will create a large elliptical region in an image and fill it with yellow. It will then transform this region by making it twice as small and fill the new region with red.

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
 
 
public void RasterRegionTransformExample() 
{ 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
   string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_TransformRegion.bmp"); 
   using (RasterCodecs codecs = new RasterCodecs()) 
   { 
      // Load the source image 
      using (RasterImage image = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
      { 
         // Add a large elliptical region  
         image.AddEllipseToRegion(null, new LeadRect(0, 0, image.ImageWidth, image.ImageHeight), RasterRegionCombineMode.Set); 
 
         // Fill the image with yellow 
         FillCommand cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow)); 
         cmd.Run(image); 
 
         // Get the region 
         using (RasterRegion region = image.GetRegion(null)) 
         { 
            // Transform this region by making it twice as small 
            LeadRect bounds = region.GetBounds(); 
 
            RasterRegionXForm xform = RasterRegionXForm.Default; 
 
            xform.XScalarNumerator = 1; 
            xform.XScalarDenominator = 2; 
            xform.YScalarNumerator = 1; 
            xform.YScalarDenominator = 2; 
 
            xform.XOffset = bounds.Width / 2; 
            xform.YOffset = bounds.Height / 2; 
 
            region.Transform(xform); 
 
            // Re-set this region into the image 
            image.SetRegion(null, region, RasterRegionCombineMode.Set); 
         } 
 
         // Now fill with red and save 
         cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Red)); 
         cmd.Run(image); 
 
         codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24); 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import static org.junit.Assert.assertTrue; 
 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.FillCommand; 
 
 
public void rasterRegionTransformExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp"); 
   String destFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1_TransformRegion.bmp"); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Load the source image 
   RasterImage image = codecs.load(srcFileName, 0, CodecsLoadByteOrder.BGR_OR_GRAY, 1, 1); 
 
   // Add a large elliptical region 
   image.addEllipseToRegion(null, new LeadRect(0, 0, image.getImageWidth(), image.getImageHeight()), 
         RasterRegionCombineMode.SET); 
 
   // Fill the image with yellow 
   FillCommand cmd = new FillCommand(RasterColor.fromKnownColor(RasterKnownColor.YELLOW)); 
   cmd.run(image); 
 
   // Get the region 
   RasterRegion region = image.getRegion(null); 
 
   // Transform this region by making it twice as small 
   LeadRect bounds = region.getBounds(); 
   RasterRegionXForm xform = RasterRegionXForm.Default(); 
   xform.setXScalarNumerator(1); 
   xform.setXScalarDenominator(2); 
   xform.setYScalarNumerator(1); 
   xform.setYScalarDenominator(2); 
   xform.setXOffset(bounds.getWidth() / 2); 
   xform.setYOffset(bounds.getHeight() / 2); 
   region.transform(xform); 
 
   // Re-set this region into the image 
   image.setRegion(null, region, RasterRegionCombineMode.SET); 
 
   // Now fill with red and save 
   cmd = new FillCommand(RasterColor.fromKnownColor(RasterKnownColor.RED)); 
   cmd.run(image); 
 
   codecs.save(image, destFileName, RasterImageFormat.BMP, 24); 
 
   assertTrue("Image unsuccessfully saved", (new File(destFileName)).exists()); 
   System.out.println("Command run and image saved to " + destFileName); 
} 
Requirements

Target Platforms

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.