Few days ago at work, I have been assigned a job to write a tool to split a .tif file that contains multiple pages. So below I have some code snippets that demonstrates how to use the .NET Framework and C# to achieve this, and we don’t need to use any third party libraries.
1) First you need to create a new Console Project called SplitTIFF.
2) Add the System.Drawing assembly to your Reference folder in your project:
3) In your code add the System.Drawing and System.Drawing.Imaging namespace.
3) Add the following code in your Main method:
Image image = Image.FromFile(“test.tif”);
pages = image.GetFrameCount(FrameDimension.Page);
for (int index = 0; index < pages; index++)
activePage = index + 1;
image.Save(“page_” + activePage.ToString() + “.tif”);
Note: replace a test.tif with your own file.
You need to instantiate an Image object using the Image class static method FromFile(). Then we need to determine how many pages exist in this single .TIF file by calling the Image class GetFrameCount() method and set the parameter by passing the FrameDimension.Page enumerator.
We create a for loop to iterate through each frame or page by calling the SelectActiveFrame() method from the Image class. We then pass the FrameDimension.Page and current index as the parameter. After the active frame or page is selected we then call the Save() method to save the active frame to a single .TIF file.
After you have compiled and ran your project, you will see page_1.tif, page_2.tif… created. But this depends on how many pages exist in your .tif file. This code is very simple and straight forward but you can extend it further to accept a .tif file from the command line if you wish.
Well I hope this code snippet is useful to anyone.
Download Project Files: