Splitting a Multi page TIFF File Tutorial

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 "VB 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 19\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
  1. 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:

    C#
    VB
    Imports System.IO 
    Imports Leadtools 
    Imports Leadtools.Codecs 
    Imports Leadtools.ImageProcessing 
                     
         
    using System.IO; 
    using Leadtools; 
    using Leadtools.Codecs; 
    using Leadtools.ImageProcessing; 
                     
         

  2. Add an event handler to the buttonSplit Click event and code it as follows:

    C#
    VB
    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 
                     
         
    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(); 
       } 
    } 
                     
         

  3. Add the following code to the Form1 class:

    C#
    VB
    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 
                     
         
    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; 
    } 
                     
         

  4. Build, and Run the program to test it.
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS Imaging, Medical, and Document
Click or drag to resize