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, browse to the "\LEADTOOLS 17\Bin\DotNet\Win32 " folder, and select the following DLLs:
- Leadtools.dll
- Leadtools.Codecs.dll
- Leadtools.Codecs.Fax.dll
- Leadtools.Codecs.Tif.dll
- 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 - 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;
- 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(); } }
- 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; }
- Build, and Run the program to test it.