public class CloneCommand : RasterCommand
Public Class CloneCommand
Inherits RasterCommand
@interface LTCloneCommand : LTRasterCommand
public class CloneCommand extends RasterCommand
public ref class CloneCommand : public RasterCommand
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 multipage 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.
This example will load an image and then clone it before saving it back to disk. For an example on how to clone a multipage image and show the overall progress monitor, refer to the CloneCommand.AllPages property.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using LeadtoolsExamples.Common;
public void CloneCommandExample()
{
RasterCodecs codecs = new RasterCodecs();
string srcFileName = Path.Combine(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();
codecs.Dispose();
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Public Sub CloneCommandExample()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "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()
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
c#[Silverlight C# Example]
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Examples;
using Leadtools.ImageProcessing;
using Leadtools.Windows.Media;
public void CloneCommandExample(RasterImage image)
{
// 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
Debug.WriteLine("Memory is: {0}", destImage1.IsConventionalMemory);
Debug.Assert(destImage1.IsConventionalMemory);
// 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
Debug.WriteLine("Memory is: {0}", destImage2.IsDiskMemory);
Debug.Assert(destImage1.IsDiskMemory);
// Clean Up
destImage1.Dispose();
destImage2.Dispose();
image.Dispose();
}
vb[Silverlight VB Example]
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.Windows.Media
Public Sub CloneCommandExample(ByVal image As RasterImage)
' 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
Debug.WriteLine("Memory is: {0}", destImage1.IsConventionalMemory)
Debug.Assert(destImage1.IsConventionalMemory)
' 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
Debug.WriteLine("Memory is: {0}", destImage2.IsDiskMemory)
Debug.Assert(destImage1.IsDiskMemory)
' Clean Up
destImage1.Dispose()
destImage2.Dispose()
image.Dispose()
End Sub
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document