Displaying multi-page tiff files using the ImageBox control and C#
Earlier this week I received a support request from a user
wanting to know if it was possible to display multi-page tiff
files using the ImageBox
control. As I haven't wrote anything
about this control for a while, it seemed a good opportunity for
a short blog post.
Getting the number of pages in a TIFF file
One you have obtained an Image
instance containing your tiff
graphic, you can use the GetFrameCount
method in conjunction
with a predefined FrameDimension
object in order to determine
how many pages there are in the image.
private int GetPageCount(Image image)
{
FrameDimension dimension;
dimension = FrameDimension.Page;
return image.GetFrameCount(dimension);
}
I have tested this code on several images, and even types which don't support pages (such as standard bitmaps) have always return a valid value. However, I have no way of knowing if this will always be the case (I have experienced first hand differences in how GDI+ handles actions between different versions of Windows). The
Image
object does offer aFrameDimensionsList
property which returns a list of GUID's for the dimensions supported by the image, so you can always check the contents of this property first if you want to be extra sure.
Selecting a page
To change the active page the Image
object represents, you can
its SelectActiveFrame
method, passing in a FrameDimension
object and the zero-based page index. Again, we can use the
predefined FrameDimension.Page
property, similar to the
following
image.SelectActiveFrame(FrameDimension.Page, page - 1);
imageBox.Invalidate();
A sample multi-page tiff file
As multi-page tiffs aren't exactly common images to be found in plenty on the internet, I've prepared a sample image based on a Newton's Cradle animation from Wikipedia.
Download NewtonsCradle.tif (4MB)
Short and sweet
That is all the information we need to create a viewer - you can download the project shown in the above animation from the links below.
Update History
- 2016-07-30 - First published
- 2020-11-21 - Updated formatting
Related articles you may be interested in
- Adding drag handles to an ImageBox to allow resizing of selection regions
- ImageBox 1.1.4.0 update
- ImageBox and TabList update's - virtual mode, pixel grid, bug fixes and more!
- ImageBox update, version 1.1.0.0
- Zooming to fit a region in a ScrollableControl
- Zooming into a fixed point on a ScrollableControl
- Arcade explosion generator
- Creating an image viewer in C# Part 5: Selecting part of an image
- Extending the ImageBox component to display the contents of a PDF file using C#
- Creating a scrollable and zoomable image viewer in C# Part 4
- Creating a scrollable and zoomable image viewer in C# Part 3
- Creating a scrollable and zoomable image viewer in C# Part 2
- Creating a scrollable and zoomable image viewer in C# Part 1
Downloads
Filename | Description | Version | Release Date | |
---|---|---|---|---|
ImageBoxTiffViewer.zip
|
Sample project for the displaying multi-page tiff files using the ImageBox control and C# blog post. |
30/07/2016 | Download |
Leave a Comment
While we appreciate comments from our users, please follow our posting guidelines. Have you tried the Cyotek Forums for support from Cyotek and the community?
Comments
XiaoFei
#
hi,this message come from China.I am a coder come from China.I am very happy to connteciton you.Your control is very nice. I hope more exchanges.