LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

Transform Method (RasterRegion)

Example 





The RasterRegionXForm by which to transform this region
Transforms this RasterRegion by the specified RasterRegionXForm. .NET support Silverlight support
Syntax
public void Transform( 
   RasterRegionXForm xform
)
'Declaration
 
Public Sub Transform( _
   ByVal xform As RasterRegionXForm _
) 
'Usage
 
Dim instance As RasterRegion
Dim xform As RasterRegionXForm
 
instance.Transform(xform)
public void Transform( 
   RasterRegionXForm xform
)
 function Leadtools.RasterRegion.Transform( 
   xform 
)
public:
void Transform( 
   RasterRegionXForm^ 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
 
Public Sub RasterRegionTransformExample()
      Dim codecs As New RasterCodecs()

      Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
      Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_TransformRegion.bmp")

      ' Load the source image
      Using image As RasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
         ' Add a large elliptical region 
         image.AddEllipseToRegion(Nothing, New LeadRect(0, 0, image.ImageWidth, image.ImageHeight), RasterRegionCombineMode.Set)

         ' Fill the image with yellow
         Dim cmd As New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow))
         cmd.Run(image)

         ' Get the region
         Using region As RasterRegion = image.GetRegion(Nothing)
            ' Transform this region by making it twice as small
            Dim bounds As LeadRect = region.GetBounds()

            Dim xform As RasterRegionXForm = 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(Nothing, region, RasterRegionCombineMode.Set)
         End Using

         ' Now fill with red and save
         cmd = New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Red))
         cmd.Run(image)

         codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24)
      End Using

      codecs.Dispose()
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public void RasterRegionTransformExample()
   {
      RasterCodecs codecs = new RasterCodecs();

      string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
      string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_TransformRegion.bmp");

      // 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);
      }

      codecs.Dispose();
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
RasterRegionExamples.prototype.RasterRegionTransformExample = function () {
    Tools.SetLicense();
    with (Leadtools) {
        with (Leadtools.Codecs) {
            var codecs = new RasterCodecs();

            var srcFileName = "Assets\\Image1.cmp";
            var destFileName = "Image1_TransformRegion.bmp";
            var image;

            // Load the source image
            return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
                return codecs.loadAsync(LeadStreamFactory.create(loadFile), 0, CodecsLoadByteOrder.bgr, 1, 1)
            })
                .then(function (img) {
                    image = img;
                    // Add a large elliptical region 
                    image.addEllipseToRegion(null, LeadRectHelper.create(0, 0, image.imageWidth, image.imageHeight), RasterRegionCombineMode.set);

                    // Fill the image with yellow
                    var cmd = new Leadtools.ImageProcessing.FillCommand(RasterColorHelper.fromKnownColor(RasterKnownColor.yellow));
                    cmd.run(image);

                    // Get the region
                    var region = image.getRegion(null)

                    // Transform this region by making it twice as small
                    var bounds = region.getBounds();

                    var 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);
                    region.close();

                    // Now fill with red and save
                    cmd = new Leadtools.ImageProcessing.FillCommand(RasterColorHelper.fromKnownColor(RasterKnownColor.red));
                    cmd.run(image);

                    return Tools.AppLocalFolder().createFileAsync(destFileName)
                })
                .then(function (saveFile) {
                    var saveStream = LeadStreamFactory.create(saveFile);
                    return codecs.saveAsync(image, saveStream, RasterImageFormat.bmp, 24)
                })
                .then(function () {

                    image.close();
                    codecs.close();
                });
        }
    }
}
[TestMethod]
public async Task RasterRegionTransformExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = @"Assets\Image1.cmp";
   string destFileName = "Image1_TransformRegion.bmp";

   // Load the source image
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile), 0, CodecsLoadByteOrder.Bgr, 1, 1))
   {
      // Add a large elliptical region 
      image.AddEllipseToRegion(null, LeadRectHelper.Create(0, 0, image.ImageWidth, image.ImageHeight), RasterRegionCombineMode.Set);

      // Fill the image with yellow
      FillCommand cmd = new FillCommand(RasterColorHelper.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(RasterColorHelper.FromKnownColor(RasterKnownColor.Red));
      cmd.Run(image);

      StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
      ILeadStream saveStream = LeadStreamFactory.Create(saveFile);
      await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 24);
   }

   codecs.Dispose();
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

RasterRegion Class
RasterRegion Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.