←Select platform

AllPages Property

Summary
Gets or sets a value that indicates whether to clone all the pages if the source image is multipage.
Syntax
C#
VB
Objective-C
C++
Java
public bool AllPages { get; set; } 
Public Property AllPages As Boolean 
@property (nonatomic, assign) BOOL allPages 
public final boolean getAllPages() 
public final void setAllPages(boolean value) 
public: 
property bool AllPages { 
   bool get(); 
   void set (    bool ); 
} 

Property Value

true to clone all the pages if the source image is multipage; false, otherwise.

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.

Example

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

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
 
 
private void CloneAllTest() 
{ 
	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(Path.Combine(LEAD_VARS.ImagesDir, "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(); 
} 
 
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); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
 
Private Sub CloneAllTest() 
   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(Path.Combine(LEAD_VARS.ImagesDir, "\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() 
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 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

Help Version 21.0.2021.3.5
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly