Splitting a Multi-page TIFF File

The following steps show how to loop through all pages of a multi-page TIFF file and extract each page, process it individually, and save it into a separate file.

 

1.

Declare the following variables:

LBitmapBase BitmapBase;         // LEAD bitmap
LFile LeadFile;                 // File operations
FILEINFO FileInfo = {0};        // File info
L_INT PageNumber, TotalPages;   // Page numbers
char szOutFileName[MAX_PATH];   // Output file name

2.

Determine the number of pages in the file:

LeadFile.SetFileName ("MultiPage.tif");
LeadFile.GetInfo (&FileInfo, sizeof(FILEINFO)); 
TotalPages = FileInfo.TotalPages;

3.

Loop through the pages of the file; performing specific processing on each page, then save each page into a separate file:

for (PageNumber=1; PageNumber<=TotalPages; ++PageNumber)
{
   // Load the next image in the loop
   BitmapBase.Load ("MultiPage.tif", 0, ORDER_BGRORGRAY, PageNumber); 
   // Check that it is properly loaded and allocated
   if(BitmapBase.IsAllocated ())
   {
      // Perform specific processing on the page, such as flipping it
      BitmapBase.Flip ();
      // Save the page to a separate file
      wsprintf(szOutFileName, "PageNumber%4.4d.tif", PageNumber); 
      BitmapBase.Save (szOutFileName, FILE_TIFLZW, BitmapBase.GetBitsPerPixel (), 0, 0); 
   } //if Allocated
} //for loop