Tiff images

G

Guest

what are options for opening / handling tiff files in .Net framework ?
which is the best library, namespace ?

Please help

Regards
Sameer Gupta
C# Designer & Developer
Siemens
UK
 
M

Michael Nemtsev

Hello Sameer,

GDI+ saves u.
Look MSDN for this.

SS> what are options for opening / handling tiff files in .Net framework
SS> ? which is the best library, namespace ?
SS>
SS> Please help
SS>
SS> Regards
SS> Sameer Gupta
SS> C# Designer & Developer
SS> Siemens
SS> UK
---
WBR,
Michael Nemtsev :: blog: http://spaces.live.com/laflour

"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsche
 
B

Bruce Wood

Sameer said:
what are options for opening / handling tiff files in .Net framework ?
which is the best library, namespace ?

Well, what is "best" depends very much on what you want to do, and how
much control you want.

If you just want to display images, the Image / Bitmap classes are
probably the ones you want. Be forewarned, though, that
Image.FromFile() leaves the TIF file locked for a while... probably
until the garbage collector gets around to doing something with the
objects that FromFile was using to read the file.

I read the TIF file into a MemoryStream and then feed it to
Image.FromStream(), like this:

Image fullImage;
System.IO.Stream st = System.IO.File.Open(imageFilePath,
System.IO.FileMode.Open, System.IO.FileAccess.Read,
System.IO.FileShare.Read);
try
{
byte[] b = new byte[st.Length];
st.Read(b, 0, b.Length);
System.IO.MemoryStream ms = new System.IO.MemoryStream(b);
fullImage = Image.FromStream(ms);
}
finally
{
st.Close();
}

which ensures that the file lock is released as soon as possible.

Be also forewarned that the Image class limits your control over the
image format. There are a limited set of bit depths at your disposal,
for example, which can cause a lot of bloat in memory as tiny
black-and-white TIF images are blown out into (unnecessary) 8-bit or
16-bit colour in memory.

Nonetheless, if all you want to do is show pictures to your user, this
is no doubt the simplest way to do that.
 
G

Guest

Thanks very much Bruce.

Actually I have lot of Tiff files, many of them are corrupted.
I need to programmatically validate / check the existing tiff files whether
they are corrupt or not. a read only mode. also don't wanna lock files.

GDI + is an option. also there is VintaSoft.Tiff library for .Net.

Please help in finding an appropriate way.


Regards
Sameer Gupta
C# Designer & Developer
Siemens
UK


Bruce Wood said:
Sameer said:
what are options for opening / handling tiff files in .Net framework ?
which is the best library, namespace ?

Well, what is "best" depends very much on what you want to do, and how
much control you want.

If you just want to display images, the Image / Bitmap classes are
probably the ones you want. Be forewarned, though, that
Image.FromFile() leaves the TIF file locked for a while... probably
until the garbage collector gets around to doing something with the
objects that FromFile was using to read the file.

I read the TIF file into a MemoryStream and then feed it to
Image.FromStream(), like this:

Image fullImage;
System.IO.Stream st = System.IO.File.Open(imageFilePath,
System.IO.FileMode.Open, System.IO.FileAccess.Read,
System.IO.FileShare.Read);
try
{
byte[] b = new byte[st.Length];
st.Read(b, 0, b.Length);
System.IO.MemoryStream ms = new System.IO.MemoryStream(b);
fullImage = Image.FromStream(ms);
}
finally
{
st.Close();
}

which ensures that the file lock is released as soon as possible.

Be also forewarned that the Image class limits your control over the
image format. There are a limited set of bit depths at your disposal,
for example, which can cause a lot of bloat in memory as tiny
black-and-white TIF images are blown out into (unnecessary) 8-bit or
16-bit colour in memory.

Nonetheless, if all you want to do is show pictures to your user, this
is no doubt the simplest way to do that.
 
K

Kevin Spencer

Actually, "GDI+" is just a generic term for the graphics namespaces in .Net.
You would have to (as I did) create your own class(es) to parse the TIFF
file if you want to get at the tags in it, multiple images, etc. So, unless
you want to do that, a commercial .Net TIFF library is your best bet.

--
HTH,

Kevin Spencer
Microsoft MVP
Chicken Salad Surgery

What You Seek Is What You Get.

Sameer Gupta said:
Thanks very much Bruce.

Actually I have lot of Tiff files, many of them are corrupted.
I need to programmatically validate / check the existing tiff files
whether
they are corrupt or not. a read only mode. also don't wanna lock files.

GDI + is an option. also there is VintaSoft.Tiff library for .Net.

Please help in finding an appropriate way.


Regards
Sameer Gupta
C# Designer & Developer
Siemens
UK


Bruce Wood said:
Sameer said:
what are options for opening / handling tiff files in .Net framework ?
which is the best library, namespace ?

Well, what is "best" depends very much on what you want to do, and how
much control you want.

If you just want to display images, the Image / Bitmap classes are
probably the ones you want. Be forewarned, though, that
Image.FromFile() leaves the TIF file locked for a while... probably
until the garbage collector gets around to doing something with the
objects that FromFile was using to read the file.

I read the TIF file into a MemoryStream and then feed it to
Image.FromStream(), like this:

Image fullImage;
System.IO.Stream st = System.IO.File.Open(imageFilePath,
System.IO.FileMode.Open, System.IO.FileAccess.Read,
System.IO.FileShare.Read);
try
{
byte[] b = new byte[st.Length];
st.Read(b, 0, b.Length);
System.IO.MemoryStream ms = new System.IO.MemoryStream(b);
fullImage = Image.FromStream(ms);
}
finally
{
st.Close();
}

which ensures that the file lock is released as soon as possible.

Be also forewarned that the Image class limits your control over the
image format. There are a limited set of bit depths at your disposal,
for example, which can cause a lot of bloat in memory as tiny
black-and-white TIF images are blown out into (unnecessary) 8-bit or
16-bit colour in memory.

Nonetheless, if all you want to do is show pictures to your user, this
is no doubt the simplest way to do that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top