FormatSupportsMultipageSave Method (original) (raw)

Summary

Gets a value that indicates whether the specified format supports multipage save operation.

Syntax

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.

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"; }

Leadtools.Codecs Assembly

CompactFile(Stream,Stream,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method

CompactFile(Stream,Stream,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method

CompactFile(string,string,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method

CompactFile(string,string,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method

StartCompress(int,int,int,RasterByteOrder,RasterViewPerspective,int,byte[],int,int,CodecsCompression,CodecsCompressDataCallback) Method