Take the following steps to start a project:
Start Visual Studio .NET. Choose File->New->Project… from the menu. 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. Type the project name as "Splitting Multi-page TIFF file" in the Project Name field, and then choose OK. If desired, type a new location for your project or select a directory using the Browse button, and then choose OK . 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 and browse to the LEADTOOLS For .NET "\LEADTOOLS 16.5\Bin\DotNet\Win32 " folder and select the following DLLs: Leadtools.dll Leadtools.Codecs.dll
Click the Select button and then press the OK button to add the above DLLs to the application. Go to the toolbox (View->Toolbox) and Drag and drop a Button control to the top of the form and set the following properties for it: Text Name Split TIFF buttonSplit 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]
[C#]Imports System.IO Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing
using System.IO; using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing;
Add an event handler to the buttonSplit Click event and code it as follows: [Visual Basic]
[C#]Private Sub buttonSplit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonSplit.Click RasterCodecs.Startup() ' 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:\Program Files (x86)\LEAD Technologies\LEADTOOLS 16.5\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 RasterCodecs.Shutdown() End Sub 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
private void buttonSplit_Click(object sender, System.EventArgs e) { RasterCodecs.Startup(); // 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:\Program Files (x86)\LEAD Technologies\LEADTOOLS 16.5\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(); } RasterCodecs.Shutdown(); } 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; }
Build, and Run the program to test it.