←Select platform

FormatSupportsMultipageSave Method

Summary
Gets a value that indicates whether the specified format supports multipage save operation.
Syntax
C#
C++/CLI
Python
public static bool FormatSupportsMultipageSave( 
   RasterImageFormat format 
) 
public: 
static bool FormatSupportsMultipageSave(  
   RasterImageFormat format 
)  
def FormatSupportsMultipageSave(self,format): 

Parameters

format
Format to check.

Return Value

true if the image file format specified by  format supports multipage save operations.

Example

This example will try to save a multipage file to disk, if the format supports multipage files, then it will create a single output file, otherwise, multiple files (for each page) will be created.

C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
private static void SaveMultiPageFile(RasterCodecs rasterCodecs, RasterImage multiPageImage, string outputFile, RasterImageFormat format) 
{ 
   // Check if the image has multi-ple pages and the format supports multi-page 
   if (multiPageImage.PageCount > 1 && RasterCodecs.FormatSupportsMultipageSave(format)) 
   { 
      // Yes, just save the file 
      rasterCodecs.Save(multiPageImage, outputFile, format, 0, 1, -1, 1, CodecsSavePageMode.Overwrite); 
   } 
   else 
   { 
      // No, we need to save each page in a separate file 
      int originalPageNumber = multiPageImage.Page; 
 
      for (int pageNumber = 1; pageNumber <= multiPageImage.PageCount; pageNumber++) 
      { 
         // Get the new file name 
         string name = Path.GetFileNameWithoutExtension(outputFile) + "_page" + pageNumber.ToString(); 
         name = Path.ChangeExtension(name, Path.GetExtension(outputFile)); 
         string pageFile = Path.Combine(Path.GetDirectoryName(outputFile), name); 
 
         // Save this page 
         multiPageImage.Page = pageNumber; 
         rasterCodecs.Save(multiPageImage, pageFile, format, 0); 
      } 
 
      multiPageImage.Page = originalPageNumber; 
   } 
} 
 
public void FormatSupportsMultipageSaveExample() 
{ 
   string inDir = LEAD_VARS.ImagesDir; 
   string outDir = Path.Combine(inDir, @"FormatSupportsMultipageSave"); 
 
   if (!Directory.Exists(outDir)) 
      Directory.CreateDirectory(outDir); 
 
   using (RasterCodecs rasterCodecs = new RasterCodecs()) 
   { 
      // Create a multi-page image 
      using (RasterImage multiPageImage = GetMultipageImage(rasterCodecs, inDir)) 
      { 
         // Save the image as TIF, this should create a single file 
         SaveMultiPageFile(rasterCodecs, multiPageImage, Path.Combine(outDir, "out.tif"), RasterImageFormat.Tif); 
 
         // Save the image as PNG, this should create multiple files (one for each page) 
         SaveMultiPageFile(rasterCodecs, multiPageImage, Path.Combine(outDir, "out.png"), RasterImageFormat.Png); 
      } 
   } 
} 
 
private static RasterImage GetMultipageImage(RasterCodecs rasterCodecs, string inDir) 
{ 
   // Create a multi-page image from some known LEADTOOLS images 
   RasterImage multiPageImage = null; 
 
   for (int imageNumber = 1; imageNumber <= 4; imageNumber++) 
   { 
      string fileName = Path.Combine(inDir, "Ocr" + imageNumber.ToString() + ".tif"); 
 
      RasterImage pageImage = rasterCodecs.Load(fileName, 1); 
      if (multiPageImage == null) 
      { 
         multiPageImage = pageImage; 
      } 
      else 
      { 
         multiPageImage.AddPage(pageImage); 
         pageImage.Dispose(); 
      } 
   } 
 
   return multiPageImage; 
} 
 
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.