LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

CopyRectangleCommand Class

Example 





Members 
Copies a portion of an image to create another image that is the size of the rectangle that you specify. .NET support Silverlight support WinRT support
Object Model
CopyRectangleCommand ClassRasterImage ClassLeadRect Structure
Syntax
public class CopyRectangleCommand : RasterCommand, IRasterCommand  
'Declaration
 
Public Class CopyRectangleCommand 
   Inherits RasterCommand
   Implements IRasterCommand 
'Usage
 
Dim instance As CopyRectangleCommand
public sealed class CopyRectangleCommand : IRasterCommand  
function Leadtools.ImageProcessing.CopyRectangleCommand()
public ref class CopyRectangleCommand : public RasterCommand, IRasterCommand  
Remarks

This command duplicates the original image palette, if one is required in the new image.

This command uses image coordinates to specify the area to be copied. Therefore, you must account for the RasterImage.ViewPerspective of the image. For information about image coordinates, refer to Accounting for View Perspective.

If a region is defined for the source image, the region is also copied, and the region is clipped if necessary.

The CopyRectangleCommand command works by creating a new image in the DestinationImage property from the image passed to the RasterCommand.Run method.

Example
 
Public Sub CopyRectangleCommandExample()
      Dim codecs As RasterCodecs = New RasterCodecs()

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

      ' Load the source image from disk
      Dim srcImage As RasterImage = codecs.Load(srcFileName)

      ' Create an image from the top/right portion of this image
      Dim command As CopyRectangleCommand = New CopyRectangleCommand()
      command.Rectangle = New LeadRect(srcImage.Width \ 8, srcImage.Height \ 8, srcImage.Width \ 3, srcImage.Height \ 3)
      command.CreateFlags = RasterMemoryFlags.Conventional
      command.Run(srcImage)

      Dim destImage As RasterImage = command.DestinationImage

      ' Save it to disk
      codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 24)

      ' Clean Up
      srcImage.Dispose()
      destImage.Dispose()
   End Sub

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

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

      // Load the source image from disk
      RasterImage srcImage = codecs.Load(srcFileName);

      // Create an image from the top/right portion of this image
      CopyRectangleCommand command = new CopyRectangleCommand();
      command.Rectangle = new LeadRect(
         srcImage.Width / 8,
         srcImage.Height / 8,
         srcImage.Width / 3,
         srcImage.Height / 3);
      command.CreateFlags = RasterMemoryFlags.Conventional;
      command.Run(srcImage);

      RasterImage destImage = command.DestinationImage;

      // Save it to disk
      codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 24);

      // Clean Up
      srcImage.Dispose();
      destImage.Dispose();
   }

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

                var srcFileName = "Assets\\Image1.cmp";
                var destFileName = "CopyRectangleCommand.bmp";
                var srcImage;
                var destImage;
                // Load the source image from disk
                return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
                    return codecs.loadAsync(LeadStreamFactory.create(loadFile))
                })
            .then(function (img) {
                srcImage = img;

                // Create an image from the top/right portion of this image
                var command = new CopyRectangleCommand();
                command.rectangle = LeadRectHelper.create(
                   srcImage.width / 8,
                   srcImage.height / 8,
                   srcImage.width / 3,
                   srcImage.height / 3);
                command.createFlags = RasterMemoryFlags.conventional;
                command.run(srcImage);

                destImage = command.destinationImage;

                // Save it to disk
                return Tools.AppLocalFolder().createFileAsync(destFileName)
            })
            .then(function (saveFile) {
                return codecs.saveAsync(destImage, LeadStreamFactory.create(saveFile), RasterImageFormat.bmp, 24)
            })
            .then(function () {
                // Clean Up
                srcImage.close();
                destImage.close();
                codecs.close();
            });
            }
        }
    }
}
[TestMethod]
public async Task CopyRectangleCommandExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = @"Assets\Image1.cmp";
   string destFileName = @"CopyRectangleCommand.bmp";

   // Load the source image from disk
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   RasterImage srcImage = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile));

   // Create an image from the top/right portion of this image
   CopyRectangleCommand command = new CopyRectangleCommand();
   command.Rectangle = LeadRectHelper.Create(
      srcImage.Width / 8,
      srcImage.Height / 8,
      srcImage.Width / 3,
      srcImage.Height / 3);
   command.CreateFlags = RasterMemoryFlags.Conventional;
   command.Run(srcImage);

   RasterImage destImage = command.DestinationImage;

   // Save it to disk
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
   await codecs.SaveAsync(destImage, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, 24);

   // Clean Up
   srcImage.Dispose();
   destImage.Dispose();
}
public void CopyRectangleCommandExample(RasterImage srcImage, Stream destStream)
{
   RasterCodecs codecs = new RasterCodecs();
   // Create an image from the top/right portion of this image
   CopyRectangleCommand command = new CopyRectangleCommand();
   command.Rectangle = new LeadRect(
      srcImage.Width / 8,
      srcImage.Height / 8,
      srcImage.Width / 3,
      srcImage.Height / 3);
   command.CreateFlags = RasterMemoryFlags.Conventional;
   command.Run(srcImage);

   RasterImage destImage = command.DestinationImage;

   // Save it to disk
   codecs.Save(destImage, destStream, RasterImageFormat.Bmp, 24);

   // Clean Up
   srcImage.Dispose();
   destImage.Dispose();
}
Public Sub CopyRectangleCommandExample(ByVal srcImage As RasterImage, ByVal destStream As Stream)
   Dim codecs As RasterCodecs = New RasterCodecs()
   ' Create an image from the top/right portion of this image
   Dim command As CopyRectangleCommand = New CopyRectangleCommand()
   command.Rectangle = New LeadRect(srcImage.Width / 8, srcImage.Height / 8, srcImage.Width / 3, srcImage.Height / 3)
   command.CreateFlags = RasterMemoryFlags.Conventional
   command.Run(srcImage)

   Dim destImage As RasterImage = command.DestinationImage

   ' Save it to disk
   codecs.Save(destImage, destStream, RasterImageFormat.Bmp, 24)

   ' Clean Up
   srcImage.Dispose()
   destImage.Dispose()
End Sub
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

CopyRectangleCommand Members
Leadtools.ImageProcessing Namespace

 

 


Products | Support | Contact Us | Copyright Notices

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