←Select platform

GetTotalPagesAsync Method

Summary
Gets the number of pages in a stream.
Syntax
Objective-C
- (void)totalPagesInStreamAsync:(LTLeadStream *)stream  
                     completion:(void (^)(NSInteger totalPages, NSError * __nullable error))completion 

Parameters

stream
A ILeadStream containing the image data to query.

Return Value

Number of pages in the specified stream.

Remarks

NOTE: This topic is part of RasterCodecs Async support using the .NET System.ComponentMode.AsyncOperation model. For .NET async/await, use Task<CodecsImageInfo> GetInformationAsync(ILeadStream stream, bool totalPages).

GetInformationAsync and GetFormatAsync use GetInformationAsync internally. So, if more information about the image is required, it is recommended to call GetInformationAsync directly and obtain the data once.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
public void LoadPagesFromStreamTest() 
{ 
 
   // Create a new RasterCodecs instance 
   using (RasterCodecs rasterCodecs = new RasterCodecs()) 
   { 
      Stream stream = File.OpenRead(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")); 
      RasterImageFormat rasterImageFormat = rasterCodecs.GetFormat(stream); 
      int totalPages = rasterCodecs.GetTotalPages(stream); 
 
      // Using extensions in RasterCodecsExtensions 
      // GetInformationAsync is used to get CodecsImageInfo 
      using (ILeadStream outputLeadStream = LeadStream.Factory.FromStream(stream)) 
      { 
 
         //Using GetInformationAsync to obtain the format data as CodecsImageInfo, instead of the internal GetFormatAsync 
         Task<CodecsImageInfo> task = rasterCodecs.GetInformationAsync(outputLeadStream, true); 
         CodecsImageInfo codecsImageInfo = task.Result; 
 
         //Get task data 
         Debug.WriteLine($"Task ID: {task.Id}"); 
         Debug.WriteLine($"Is a Document File: {task.Result.Document.IsDocumentFile}"); 
         Debug.WriteLine($"codecsImageInfo Palette: {codecsImageInfo.GetPalette()}"); 
 
         // Get total pages using TotalPages instead of GetTotalPagesAsync 
         Debug.WriteLine($"Total Pages: {task.Result.TotalPages}"); 
 
      } 
 
      // Get the number of pages 
      int pageCount = rasterCodecs.GetTotalPages(stream); 
      Debug.WriteLine("Number of pages in the file is {0}", pageCount); 
 
      // Load all pages 
      for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++) 
      { 
         using (RasterImage rasterImage = rasterCodecs.Load(stream, pageNumber)) 
         { 
            Debug.WriteLine("Page {0} loaded", pageNumber); 
         } 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.*; 
import java.net.*; 
import java.nio.file.Paths; 
import java.util.*; 
import java.time.Instant; 
import java.time.Duration; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.codecs.RasterCodecs.FeedCallbackThunk; 
import leadtools.drawing.internal.*; 
import leadtools.imageprocessing.*; 
import leadtools.imageprocessing.color.ChangeIntensityCommand; 
import leadtools.svg.*; 
 
 
RasterCodecs rasterCodecs; 
ILeadStream inputStream; 
 
public void loadPagesFromStreamExample() throws IOException { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   rasterCodecs = new RasterCodecs(); 
 
   inputStream = LeadStreamFactory.create(combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp")); 
   rasterCodecs.getFormat(inputStream); 
   rasterCodecs.getTotalPages(inputStream); 
 
   // GetInformationAsync is used to get CodecsImageInfo 
   // Using GetInformationAsync to obtain the format data as CodecsImageInfo, 
   // instead of the internal GetFormatAsync 
   rasterCodecs.getInformationAsync(inputStream, true, 1, null); 
} 
 
CodecsGetInformationAsyncCompletedListener codecsGetInformationAsyncCompleted = new CodecsGetInformationAsyncCompletedListener() { 
 
   @Override 
   public void onGetInformationAsyncCompleted(CodecsGetInformationAsyncCompletedEvent e) { 
      CodecsImageInfo task = e.getInfo(); 
      // Get task data 
      System.out.println("Task Name: " + task.getName()); 
      System.out.println("Is a Document File: " + task.getDocument().isDocumentFile()); 
      System.out.println("codecsImageInfo Palette: " + task.getPalette()); 
      // Get total pages using TotalPages instead of GetTotalPagesAsync 
      System.out.println("Total Pages: " + task.getTotalPages()); 
      // Get the number of pages 
      int pageCount = rasterCodecs.getTotalPages(inputStream); 
      System.out.printf("Number of pages in the file is %s%n", pageCount); 
      // Load all pages 
      int i = 0; 
      for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++) { 
         i++; 
         rasterCodecs.load(inputStream, pageNumber); 
         System.out.printf("Page %s loaded%n", pageNumber); 
      } 
      assertTrue("All pages are accounted for", i == pageCount); 
      System.out.println("All pages have been loaded"); 
   } 
 
}; 
Requirements

Target Platforms

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

Leadtools.Codecs Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.