Tiff images

  • Thread starter Thread starter Guest
  • Start date Start date
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
 
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
 
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.
 
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.
 
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

Back
Top