Take the following steps to start a project:
Start Visual Studio.
Choose File -> New -> Project... from the menu.
In the New Project dialog box, choose either Visual C# Projects or VB Projects in the Projects Type list. Then, choose Windows Forms Application in the templates list.
Name the project "Split Multipage TIFF Files" If desired, provide a new location for your project. Click OK.
In the Solution Explorer panel, right-click on the References node and select Add Reference... from the context menu. In the Add Reference dialog box, browse to the "C:\LEADTOOLS 20\Bin\DotNet4\Win32" folder and select the following DLLs:
Click the Select button and then press the OK button to add the above DLLs to the application.
Drag and drop a Button from the Toolbox onto the Form1 UI designer. Change the following properties:
| Text | Name |
|---|---|
| Split TIFF | buttonSplit |
Switch to the code view of Form1 (right-click Form1 in the Solution Explorer and select View Code) and add the following lines at the beginning of the file:
Imports System.IOImports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessing
using System.IO;using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing;
Add the following initialization code to the Form1 class
Protected Overrides Sub OnLoad(ByVal e As EventArgs)' Requires a license file that unlocks 1D barcode read functionality.Dim MY_LICENSE_FILE As String = "C:\LEADTOOLS 20\Support\Common\License\leadtools.lic"Dim MY_DEVELOPER_KEY As String = System.IO.File.ReadAllText("C:\LEADTOOLS 20\Support\Common\License\leadtools.lic.key")RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DEVELOPER_KEY)MyBase.OnLoad(e)End SubPrivate Function CreateMultiPageFile(ByVal codecs As RasterCodecs) As String' Create a multipage TIF fileDim 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 = NothingFor i As Integer = 0 To pageFileName.Length - 1' load the page imageDim page As RasterImage = codecs.Load(pageFileName(i))If (i = 0) Then' first image, just save it into our variableimage = pageElse' add this page into our imageimage.AddPage(page)' we do not need this page anymorepage.Dispose()End IfNextDim outputFileName As String = "C:\Users\Public\Documents\LEADTOOLS Images\MultiPage.tif"If (File.Exists(outputFileName)) ThenFile.Delete(outputFileName)End Ifcodecs.Save(image, outputFileName, RasterImageFormat.Tif, 1, 1, 4, 1, CodecsSavePageMode.Overwrite)image.Dispose()Return outputFileNameEnd Function
protected override void OnLoad(EventArgs e){// Requires a license file that unlocks 1D barcode read functionality.string MY_LICENSE_FILE = @"C:\LEADTOOLS 20\Support\Common\License\leadtools.lic";string MY_DEVELOPER_KEY = System.IO.File.ReadAllText(@"C:\LEADTOOLS 20\Support\Common\License\leadtools.lic.key");RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DEVELOPER_KEY);buttonSplit.Click += buttonSplit_Click;base.OnLoad(e);}private string CreateMultiPageFile(RasterCodecs codecs){// Create a multipage TIF filestring[] 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 imageRasterImage page = codecs.Load(pageFileName[i]);if(i == 0){// first image, just save it into our variableimage = page;}else{// add this page into our imageimage.AddPage(page);// we do not need this page anymorepage.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;}
Add an event handler to the buttonSplit Click event and code it as follows:
Private Sub buttonSplit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonSplit.Click' Initialize a new RasterCodecs object.Dim codecs As New RasterCodecs()Dim multiPageFileName As String = CreateMultiPageFile(codecs)' Find out how many pages the file hasDim 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 loopDim image As RasterImage = codecs.Load(multiPageFileName, 0, CodecsLoadByteOrder.BgrOrGray, pageNumber, pageNumber)' Perform specific processing on the page, such as flipping itflip.Run(image)' Save the page to a separate fileDim pageFileName As String = Path.Combine(outputDir, "Page" + pageNumber.ToString() + ".tif")codecs.Save(image, pageFileName, RasterImageFormat.Tif, 0)NextEnd Sub
private void buttonSplit_Click(object sender, System.EventArgs e){// Initialize a new RasterCodecs object.RasterCodecs codecs = new RasterCodecs();string multiPageFileName = CreateMultiPageFile(codecs);// Find out how many pages the file hasCodecsImageInfo 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 loopRasterImage image = codecs.Load(multiPageFileName, 0, CodecsLoadByteOrder.BgrOrGray, pageNumber, pageNumber);// Perform specific processing on the page, such as flipping itflip.Run(image);// Save the page to a separate filestring pageFileName = Path.Combine(outputDir, "Page" + pageNumber + ".tif");codecs.Save(image, pageFileName, RasterImageFormat.Tif, 0);image.Dispose();}}
Build and run the program to test it.