←Select platform

CompactFile(string,string,int) Method

Summary
Compacts TIFF/BigTIFF, PNG or Exif JPEG files with default options.
Syntax
C#
Objective-C
C++/CLI
Python
public void CompactFile( 
   string srcFileName, 
   string destFileName, 
   int pages 
) 
- (BOOL)compactFile:(NSString *)sourceFile  
    destinationFile:(NSString *)destinationFile  
              pages:(NSUInteger)pages  
              error:(NSError **)error 
public: 
void CompactFile(  
   String^ srcFileName, 
   String^ destFileName, 
   int pages 
)  
def CompactFile(self,srcFileName,destFileName,pages): 

Parameters

srcFileName
A String containing the name of the file being compacted. All the pages will be read from this file.

destFileName
A String containing the name of the file in which all the pages will be written.

pages
Value that represents the number of pages to copy. Use 0 to copy all the pages. If pages is > 0, only pages will be copied to destFileName .

Remarks

This method can also be used to copy or extract one or more pages from a TIFF/BigTIFF file and copy them without recompression to another TIFF/BigTIFF file.

This method can also be used to convert a TIFF file to BigTIFF or vice versa. The destination file will be Tiff or BigTiff depending on BigTiff.

If the source is PNG, the destination is also PNG. If the source is Exif JPEG, the destination is also Exif JPEG. For both of these formats, setting pages to 1 will discard the thumbnail if it exists.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
 
public void CompactFileExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "CompactFile1_Src.tif"); 
   string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "CompactFile1_Dest.tif"); 
 
   // Create a RasterImage with 4 pages containing text showing the page number 
   RasterImage image = null; 
   const int pageCount = 4; 
 
   using (System.Drawing.Font f = new System.Drawing.Font("Arial", 36, System.Drawing.FontStyle.Bold)) 
   using (System.Drawing.Bitmap btmp = new System.Drawing.Bitmap(320, 200)) 
   using (System.Drawing.StringFormat sf = new System.Drawing.StringFormat()) 
   { 
      System.Drawing.Rectangle rc = new System.Drawing.Rectangle(0, 0, btmp.Width, btmp.Height); 
      sf.Alignment = System.Drawing.StringAlignment.Center; 
      sf.LineAlignment = System.Drawing.StringAlignment.Center; 
 
      for (int i = 1; i <= pageCount; i++) 
      { 
         // Create a GDI+ bitmap with the text 
         string text = "Page " + i; 
 
         using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(btmp)) 
         { 
            g.FillRectangle(System.Drawing.Brushes.White, rc); 
            g.DrawString(text, f, System.Drawing.Brushes.Black, rc, sf); 
         } 
 
         RasterImage tempImage = Leadtools.Drawing.RasterImageConverter.ConvertFromImage(btmp, Leadtools.Drawing.ConvertFromImageOptions.None); 
 
         if (image == null) 
            image = tempImage; 
         else 
            image.AddPage(tempImage); 
      } 
   } 
 
   // Save all the pages to the file 
   // The file should have 4 pages now: 1, 2, 3, 4 
   codecs.Save(image, srcFileName, RasterImageFormat.Tif, 1, 1, pageCount, 1, CodecsSavePageMode.Overwrite); 
   image.Dispose(); 
 
   // All the pages in the source TIFF file. This will create the destination file 
   codecs.CompactFile(srcFileName, destFileName, 0); 
 
   // Compact the source file again and append all the pages to the existing destination file 
   int pagesToAdd = 0;  // 0 means all pages 
   int srcStartPage = 1; 
   int destStartPage = 5;  // insert at the end 
 
   codecs.CompactFile( 
      srcFileName, 
      destFileName, 
      pagesToAdd, 
      srcStartPage, 
      false, 
      0, 
      destStartPage, 
      false, 
      0, 
      CodecsSavePageMode.Insert, 
      false, 
      false); 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
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.