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
December 1996

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

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



Valid HTML 4.01!



Thread

1996.12.17 18:44 "Changing ORIENTATION of a TIFF", by Michael J Callahan
1996.12.19 08:42 "Re: Changing ORIENTATION of a TIFF", by Karsten Spang

1996.12.19 08:42 "Re: Changing ORIENTATION of a TIFF", by Karsten Spang

In message <Pine.SOL.3.91.961217134248.22234B-100000@atl1> ,
"Michael J. Callahan" <mikec@america.net>  writes:

>The problem I have now concerns the fact that the TIFF images I am working
>with are saved such that their orientation value is 3. So the users are
>unhappy that the images come up in thier viewers with the right side on the
>left (reversed). The fact that they can flip them to read correctly in their
>viewers is not an appropriate solution for them/us.

In the TIFF 6.0 specification, top of page 37, it is stated that
"Support for orientations other than 1 is not a Baseline TIFF requirement.",
in other words, you should not expect a viewer to honor the Orientation tag!

>It seems I most likely need to be able to read the existing image file,
>convert the TIFF data such that it's orientation will be an un-reversed
>value of 1, and then write a new TIFF file as a result.

I think you are right:-)

>Can LibTiff be used for this? Has anyone done this? Do you have any insight
>as to how to accomplish this with that library? I have preliminarily looked
>at some documentation on it and it was not immeadiately clear to me how to
>begin, perhaps with more study.

Libtiff can be used for reading the old file, and writing the new file, but
the rotation, you must do yourself. The rotaion 3->1 is 180 degrees, which
is simply two flips. All you have to do, is to read the scan lines in
reverse order, flip each of them, and write them out. If you are using
compressed data, it will be probably be more efficient to read the input
as strips in reverse order, and then take the scanlines out of the strip
in reverse order.

Flipping a scan line depends on what kind of data you have. If they are 
bilevel, there is a routine in libtiff called TIFFReverseBits, which
flips the bits in a bunch of bytes, such that you just have to flip the
bytes.

Karsten
--------------------------------------------------------------------------------
E-mail: krs@kampsax.dk                                      Karsten Spang
Phone:  +45 36 39 08 00                                     Kampsax Technology
Fax:    +45 36 77 03 01                                     P.O. Box 1142
WWW:    http://www.kampsax.dk/~krs                          DK-2650 Hvidovre
                                                            Denmark