Open huge TIF in .NET and copy parts to new image
If your file is less than 4GB on disk than I recommend you to take another look at LibTiff.Net. Even with such large images you have some options.
First of all, check whether your image is tiled or stripped. Tiff.IsTiled
method will give you the answer.
If your image is tiled, than you probably shouldn't read it using ReadScanline
method. It might be better to use ReadEncodedTile
method in that case.
If your images is stripped, than you can use ReadScanline
and ReadEncodedStrip
methods to read it.
If you want to use something that expects System.Drawing.Bitmap
than try using ReadRGBATile
or ReadRGBAStrip
. These methods can be used to create bitmaps from portions of your image. There is no sample for this, but Convert color TIFF to a 32-bit System.Drawing.Bitmap should give you almost all required information about how to convert tile or strip of an image to a bitmap.
EDIT:
LibTiff.Net 2.4.508 adds support for BigTiff so files larger than 4GB are also supported.
Your image must be in BigTIFF format, since normal TIFF can't be larger than 4 GB.
BigTIFF can be read with a modified version of libtiff (available in BigTIFF website), this library allows to handle such images the way you want without loading all pixel data in memory.
I didn't see bindings for .NET but it shouldn't be too long to do it.