AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
January 2007

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date


The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems

Valid HTML 4.01!


2007.01.04 17:51 "Access to bare libtiff codecs?", by John Aldridge
2007.01.04 18:02 "Re: Access to bare libtiff codecs?", by Lee Howard
2007.01.04 18:56 "Re: Access to bare libtiff codecs?", by Edward Lam
2007.01.04 18:44 "Re: Access to bare libtiff codecs?", by Joris Van Damme
2007.01.05 15:42 "Re: Access to bare libtiff codecs?", by Andy Cave
2007.01.05 16:06 "Re: Access to bare libtiff codecs?", by John Aldridge

2007.01.05 15:42 "Re: Access to bare libtiff codecs?", by Andy Cave

Hi John,

Accessing the compression routines directly is a little bit of a pain 
(rather a lot of pain), since they rely on quite a lot of state and the 
routines you want are 'hidden' (static). For example you'd need to call 
TIFFInitCCITTFax4 first, since all the G4 methods are declared static - so 
you need to create a 'dummy' (real) TIFF struct before that, and then you 
can if you make the 'right calls'. Even then you'd need to make sure the 
'output' was preserved in your output buffer and never got flushed. Would 
take a little (a lot) working out and be quite fiddly.

Setting your own routines for i/o (as someone else suggested) would be even 
fiddlier to do I think. Since you'd capture all the TIFF header/tags as 
well - just as easy in this case to use a normal temporary file.

Writing a compressed TIFF file as you indicate and then reading it back is 
probably a lot simpler than doing either of the above.

If this is for commercial work, another alternative that might be simpler is 
to find someone to license you some code to write either compressed G3 or 
G4. In fact my company has some 'inexpensive' (depends on what you view as 
'inexpensive' ... :-)) commercial libraries which do exactly what you want - 
mail me off forum if you're interested - If I'm 
not allowed to say this, sorry everyone - I have seen other people 
'advertising' their own companies related products to some degree.

Also, I'm curious - how important to you (and anyone in fact on the TIFFLib 
mailing list) is speed? The G3/G4 compression/decompression routines in 
TIFFLib are not that fast. Our libraries are significantly faster - around 
2-5x faster depending on image content.



----- Original Message ----- 
From: "John Aldridge" <>
To: "TIFF mailing list" <>
Sent: Thursday, January 04, 2007 5:51 PM
Subject: [Tiff] Access to bare libtiff codecs?

> Hi, all,
> We've got a requirement to create (from an array of bits) a CCITT Group 3 
> or 4 encoded data stream which is /not/ wrapped up in a TIFF file, and I 
> wondered whether libtiff (which we already use for other reasons) could do 
> this.
> We could, I think, do this by creating a temporary TIFF file of the right 
> format, calling TIFFWriteEncodedStrip to encode the data, and then calling 
> TIFFReadRawStrip to get the encoded data back, but is there an easier way?
> I've failed to find anything obvious following a quick perusal of the 
> documentation & source code, so if this is possible I'd welcome a pointer 
> or two to the places to look!
> -- 
> Thanks,
> John
> _______________________________________________
> Tiff mailing list: