←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#
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:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

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

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