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.IO
Imports Leadtools
Imports Leadtools.Codecs
Imports 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 Sub
Private Function CreateMultiPageFile(ByVal codecs As RasterCodecs) As String
' Create a multipage 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
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 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;
}
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 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)
{
// Initialize 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();
}
}
Build and run the program to test it.
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.