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



Gets or sets a value that indicates whether to clone all the pages if the source image is multi-page.

Syntax

Visual Basic (Declaration)  
Public Property AllPages As Boolean
Visual Basic (Usage) Copy Code
Dim instance As CloneCommand
Dim value As Boolean
 
instance.AllPages = value
 
value = instance.AllPages
C#  
public bool AllPages {get; set;}
C++/CLI  
public:
property bool AllPages {
   bool get();
   void set (bool value);
}

Return Value

true to clone all the pages if the source image is multi-page, otherwise; false.

Example

This example will clone a multi-page image and shows the over-all progress value.

Visual Basic Copy Code
Private Sub CloneAllTest()
   RasterCodecs.Startup()
   Dim codecs As New RasterCodecs()
   ' Create a multi-page image for testing purposes
   Dim image As RasterImage = Nothing
   For i As Integer = 1 To 4
      Dim pageImage As RasterImage = codecs.Load("C:\Users\Public\Documents\LEADTOOLS Images\OCR" + i.ToString() + ".tif")
      If IsNothing(image) Then
         image = pageImage
      Else
         image.AddPage(pageImage)
         pageImage.Dispose()
      End If
   next

   Console.WriteLine("Input image has {0} pages", image.PageCount)

   ' Clone all pages
   Dim cloneCmd As New CloneCommand()
   cloneCmd.AllPages = True
   AddHandler cloneCmd.Progress, AddressOf cloneCmd_Progress
   cloneCmd.Run(image)
   RemoveHandler cloneCmd.Progress, AddressOf cloneCmd_Progress

   Dim destinationImage As RasterImage = cloneCmd.DestinationImage
   Console.WriteLine("Cloned image has {0} pages", destinationImage.PageCount)

   destinationImage.Dispose()
   image.Dispose()
   codecs.Dispose()

   RasterCodecs.Shutdown()
End Sub

Private Sub cloneCmd_Progress(ByVal sender As Object, ByVal e As RasterCommandProgressEventArgs)
   ' By using the SourceImage property of the CloneCommand we can find out
   ' the progress for the current page as well as the overall
   Dim cmd As CloneCommand = DirectCast(sender, CloneCommand)

   Dim overallPercent As Integer

   If cmd.AllPages AndAlso cmd.SourceImage.PageCount > 1 Then
      ' For multiple-pages, the command will fire the Progress event from 0 to 100 for each page
      ' Use the source image Page property to find out where we are in overall completetion
      overallPercent = ((cmd.SourceImage.Page - 1) * 100 + e.Percent) \ cmd.SourceImage.PageCount
   Else
      ' Otherwise, the percent is the same as the current page
      overallPercent = e.Percent
   End If

   Console.WriteLine("Current page completion: {0} of {1} - {2}% - Overall image completion {3}%", cmd.SourceImage.Page, cmd.SourceImage.PageCount, e.Percent, overallPercent)
End Sub
C# Copy Code
private void CloneAllTest() 

   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
   // Create a multi-page image for testing purposes 
   RasterImage image = null; 
   for(int i = 1; i <= 4; i++) 
   { 
      RasterImage pageImage = codecs.Load(@"C:\Users\Public\Documents\LEADTOOLS Images\OCR" + i.ToString() + ".tif"); 
      if(image == null) 
         image = pageImage; 
      else 
      { 
         image.AddPage(pageImage); 
         pageImage.Dispose(); 
      } 
   } 
 
   Console.WriteLine("Input image has {0} pages", image.PageCount); 
 
   // Clone all pages 
   CloneCommand cloneCmd = new CloneCommand(); 
   cloneCmd.AllPages = true; 
   cloneCmd.Progress += new EventHandler<RasterCommandProgressEventArgs>(cloneCmd_Progress); 
   cloneCmd.Run(image); 
   cloneCmd.Progress -= new EventHandler<RasterCommandProgressEventArgs>(cloneCmd_Progress); 
 
   RasterImage destinationImage = cloneCmd.DestinationImage; 
   Console.WriteLine("Cloned image has {0} pages", destinationImage.PageCount); 
 
   destinationImage.Dispose(); 
   image.Dispose(); 
   codecs.Dispose(); 
 
   RasterCodecs.Shutdown(); 

 
private void cloneCmd_Progress(object sender, RasterCommandProgressEventArgs e) 

   // By using the SourceImage property of the CloneCommand we can find out 
   // the progress for the current page as well as the overall 
   CloneCommand cmd = sender as CloneCommand; 
 
   int overallPercent; 
 
   if(cmd.AllPages && cmd.SourceImage.PageCount > 1) 
   { 
      // For multiple-pages, the command will fire the Progress event from 0 to 100 for each page 
      // Use the source image Page property to find out where we are in overall completetion 
      overallPercent = ((cmd.SourceImage.Page - 1) * 100 + e.Percent) / cmd.SourceImage.PageCount; 
   } 
   else 
   { 
      // Otherwise, the percent is the same as the current page 
      overallPercent = e.Percent; 
   } 
 
   Console.WriteLine("Current page completion: {0} of {1} - {2}% - Overall image completion {3}%", cmd.SourceImage.Page, cmd.SourceImage.PageCount, e.Percent, overallPercent); 
}

Remarks

If the source image (the image passed to the RasterCommand.Run method) contains multiple pages, then you can use the AllPages property to control whether the CloneCommand will create a copy of the current active page or all the pages in the image.

Note that when the source image has multiple pages and the value of AllPages was set to true, then the RasterCommand.Progress event will fire from 0 to 100 for each page processed. If an overall progress percentage is desired, then you can inspect the RasterImage.Page and RasterImage.PageCount properties of the SourceImage property to calculate this value as shown in the example below.

The default value of this property is false to clone only the current page.

Requirements

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

See Also