Leadtools Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
CloneCommand Class
See Also  Members   Example 
Leadtools.ImageProcessing Namespace : CloneCommand Class



Creates a copy of a a RasterImage object.

Object Model



Syntax

Visual Basic (Declaration)  
Public Class CloneCommand 
   Inherits RasterCommand
   Implements IRasterCommand 
Visual Basic (Usage) Copy Code
Dim instance As CloneCommand
C#  
public class CloneCommand : RasterCommand, IRasterCommand  
C++/CLI  
public ref class CloneCommand : public RasterCommand, IRasterCommand  

Example

This example will load an image and then clone it before saving it back to disk. For an example on how to clone a multi-page image and show the overall progress monitor, refer to the CloneCommand.AllPages property.

Visual Basic Copy Code
Public Sub CloneCommandExample()
 RasterCodecs.Startup()
 Dim codecs As RasterCodecs = New RasterCodecs()

 Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"

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

 ' Clone it, first, into conventional memory
 Dim command As CloneCommand = New CloneCommand()
 command.CreateFlags = RasterMemoryFlags.Conventional
 command.Run(image)

 Dim destImage1 As RasterImage = command.DestinationImage

 ' Make sure it is in conventional memory
 Console.WriteLine("Memory is: {0}", destImage1.MemoryInformation.MemoryFlags)

 ' Clone it again this time to disk memory
 command.CreateFlags = RasterMemoryFlags.Disk
 command.Run(image)

 Dim destImage2 As RasterImage = command.DestinationImage

 ' Make sure it is in disk memory
 Console.WriteLine("Memory is: {0}", destImage2.MemoryInformation.MemoryFlags)

 ' Clean Up
 destImage1.Dispose()
 destImage2.Dispose()
 image.Dispose()
 RasterCodecs.Shutdown()
      End Sub
C# Copy Code
public void CloneCommandExample() 

   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string srcFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"; 
 
   // Load the source image from disk 
   RasterImage image = codecs.Load(srcFileName); 
 
   // Clone it, first, into conventional memory 
   CloneCommand command = new CloneCommand(); 
   command.CreateFlags = RasterMemoryFlags.Conventional; 
   command.Run(image); 
 
   RasterImage destImage1 = command.DestinationImage; 
 
   // Make sure it is in conventional memory 
   Console.WriteLine("Memory is: {0}", destImage1.MemoryInformation.MemoryFlags); 
 
   // Clone it again this time to disk memory 
   command.CreateFlags = RasterMemoryFlags.Disk; 
   command.Run(image); 
 
   RasterImage destImage2 = command.DestinationImage; 
 
   // Make sure it is in disk memory 
   Console.WriteLine("Memory is: {0}", destImage2.MemoryInformation.MemoryFlags); 
 
   // Clean Up 
   destImage1.Dispose(); 
   destImage2.Dispose(); 
   image.Dispose(); 
   RasterCodecs.Shutdown(); 
}

Remarks

After the command is run, a copy of the current page of the source image will be in the CloneCommand.DestinationImage property. This property will hold a copy of the image, so the user is responsible for freeing this image after using it.

If a region is defined for the image, the region is also copied.

If the source image has more than one page, then you can use the CloneCommand.AllPages property to control whether to clone all the pages in the image or only the current page.

You can use the RasterImage.Clone method instead of this command to create a clone of an image. If you need to clone a multi-page RasterImage object, then use the RasterImage.CloneAll method. These methods will also clone any metadata (tags, comments and markers) located in the source image however, you lose the benefit of using a progress monitor.

Inheritance Hierarchy

System.Object
   Leadtools.ImageProcessing.RasterCommand
      Leadtools.ImageProcessing.CloneCommand

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also