LEAD Technologies, Inc

Splitting a Multi-page TIFF File Tutorial

Take the following steps to start a project:

  1. Start Visual Studio .NET.
  2. Choose File->New->Project… from the menu.
  3. In the New Project dialog box, Choose either "Visual C# Projects" or "Visual Basic Projects" in the Projects Type List, and choose "Windows Application " in the Templates List.
  4. Type the project name as "Splitting Multi-page TIFF file" in the Project Name field, and then click OK. If desired, type a new location for your project or select a directory using the Browse button, and then click OK .
  5. In the "Solution Explorer" window, right-click on the "References" folder, and select "Add Reference…" from the context menu. In the "Add Reference" dialog box, select the ".NET" tab, browse to the "C:\LEADTOOLS 17.5\Bin\DotNet\Win32" folder, and select the following DLLs:
    • Leadtools.dll
    • Leadtools.Codecs.dll
    • Leadtools.Codecs.Fax.dll
    • Leadtools.Codecs.Tif.dll
    Click the Select button and then press the OK button to add the above DLLs to the application.
  6. Go to the toolbox (View->Toolbox), drag and drop a Button control on the form, and set the following properties for it:
    Text Name
    Split TIFF buttonSplit
  7. Switch to Form1 code view (right-click Form1 in the solution explorer then select View Code) and add the following lines at the beginning of the file: [Visual Basic]
                Imports System.IO
                Imports Leadtools
                Imports Leadtools.Codecs
                Imports Leadtools.ImageProcessing
                
    
    [C#]
                using System.IO;
                using Leadtools;
                using Leadtools.Codecs;
                using Leadtools.ImageProcessing;
                
    
  8. Add an event handler to the buttonSplit Click event and code it as follows:

    [Visual Basic]
                Private Sub buttonSplit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonSplit.Click
                   ' Intitialize a new RasterCodecs object.
                   Dim codecs As New RasterCodecs()
                   Dim multiPageFileName As String = CreateMultiPageFile(codecs)
                   ' Find out how many pages the file has
                   Dim info As CodecsImageInfo = codecs.GetInformation(multiPageFileName, True)
                   ' Loop through the pages of the file; perform specific processing on it, then save each page to a separate file:
                   Dim flip As New FlipCommand()
                   Dim outputDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
                   For pageNumber As Integer = 1 To info.TotalPages
                      ' Load the next image in the loop
                      Dim image As RasterImage = codecs.Load(multiPageFileName, 0, CodecsLoadByteOrder.BgrOrGray, pageNumber, pageNumber)
                      ' Perform specific processing on the page, such as flipping it
                      flip.Run(image)
                      ' Save the page to a separate file
                      Dim pageFileName As String = Path.Combine(outputDir, "Page" + pageNumber.ToString() + ".tif")
                      codecs.Save(image, pageFileName, RasterImageFormat.Tif, 0)
                   Next
                End Sub
                
    
    [C#]
                private void buttonSplit_Click(object sender, System.EventArgs e)
                {
                   // Intitialize a new RasterCodecs object.
                   RasterCodecs codecs = new RasterCodecs();
                   string multiPageFileName = CreateMultiPageFile(codecs);
                   // Find out how many pages the file has
                   CodecsImageInfo info = codecs.GetInformation(multiPageFileName, true);
                   
                   // Loop through the pages of the file; perform specific processing on it, then save each page to a separate file:
                   FlipCommand flip = new FlipCommand();
                   string outputDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
                   for(int pageNumber = 1; pageNumber <= info.TotalPages; pageNumber++)
                   {
                      // Load the next image in the loop
                      RasterImage image = codecs.Load(multiPageFileName, 0, CodecsLoadByteOrder.BgrOrGray, pageNumber, pageNumber);
                      // Perform specific processing on the page, such as flipping it
                      flip.Run(image);
                      // Save the page to a separate file
                      string pageFileName = Path.Combine(outputDir, "Page" + pageNumber + ".tif");
                      codecs.Save(image, pageFileName, RasterImageFormat.Tif, 0);
                      image.Dispose();
                   }
                }
                
    
  9. Add the following code to the Form1 class:

    [Visual Basic]
                Function CreateMultiPageFile(ByVal codecs As RasterCodecs) As String
                   ' Create a multi-page TIF file
                   Dim pageFileName() As String = _
                   { _
                      "C:\Users\Public\Documents\LEADTOOLS Images\Ocr1.tif", _
                      "C:\Users\Public\Documents\LEADTOOLS Images\Ocr2.tif", _
                      "C:\Users\Public\Documents\LEADTOOLS Images\Ocr3.tif", _
                      "C:\Users\Public\Documents\LEADTOOLS Images\Ocr4.tif" _
                   }
                   Dim image As RasterImage = Nothing
                   For i As Integer = 0 To pageFileName.Length - 1
                      ' load the page image
                      Dim page As RasterImage = codecs.Load(pageFileName(i))
                      If (i = 0) Then
                         ' first image, just save it into our variable
                         image = page
                      Else
                         ' add this page into our image
                         image.AddPage(page)
                         ' we do not need this page anymore
                         page.Dispose()
                      End If
                   Next
                   Dim outputFileName As String = "C:\Users\Public\Documents\LEADTOOLS Images\MultiPage.tif"
                   If (File.Exists(outputFileName)) Then
                      File.Delete(outputFileName)
                   End If
                   codecs.Save(image, outputFileName, RasterImageFormat.Tif, 1, 1, 4, 1, CodecsSavePageMode.Overwrite)
                   image.Dispose()
                   Return outputFileName
                End Function
                           
                
    
    [C#]
                string CreateMultiPageFile(RasterCodecs codecs)
                {
                   // Create a multi-page TIF file
                   string[] pageFileName =
                   {
                      @"C:\Users\Public\Documents\LEADTOOLS Images\Ocr1.tif",
                      @"C:\Users\Public\Documents\LEADTOOLS Images\Ocr2.tif",
                      @"C:\Users\Public\Documents\LEADTOOLS Images\Ocr3.tif",
                      @"C:\Users\Public\Documents\LEADTOOLS Images\Ocr4.tif"
                   };
                   RasterImage image = null;
                   for(int i = 0; i < pageFileName.Length; i++)
                   {
                      // load the page image
                      RasterImage page = codecs.Load(pageFileName[i]);
                      if(i == 0)
                      {
                         // first image, just save it into our variable
                         image = page;
                      }
                      else
                      {
                         // add this page into our image
                         image.AddPage(page);
                         // we do not need this page anymore
                         page.Dispose();
                      }
                   }
                   string outputFileName = @"C:\Users\Public\Documents\LEADTOOLS Images\MultiPage.tif";
                   if(File.Exists(outputFileName))
                      File.Delete(outputFileName);
                   codecs.Save(image, outputFileName, RasterImageFormat.Tif, 1, 1, 4, 1, CodecsSavePageMode.Overwrite);
                   image.Dispose();
                   return outputFileName;
                }
                           
                
    
  10. Build, and Run the program to test it.

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.