[Image-SIG] PIL not loading some TIFF files?

Green Bryan - bgreen Bryan.Green at acxiom.com
Wed Nov 5 01:11:50 CET 2008


They are required per the TIFF 6.0 baseline standard.  Here is a link (and I pasted the relevant text from p.64):
http://www.alternatiff.com/resources/TIFF6.pdf

Required Fields for RGB Images
                    These are the required fields for RGB images (in numerical order):
                    TagName                      Decimal Hex    Type                   Value
                    ImageWidth                   256      100   SHORT or LONG
                    ImageLength                  257      101   SHORT or LONG
                    BitsPerSample                258      102   SHORT                  8,8,8
                    Compression                  259      103   SHORT                  1 or 32773
                    PhotometricInterpretation    262      106   SHORT                  2
                    StripOffsets                 273      111   SHORT or LONG
                    SamplesPerPixel              277      115   SHORT                  3 or more
                    RowsPerStrip                 278      116   SHORT or LONG
                    StripByteCounts              279      117   LONG or SHORT
                    XResolution                  282      11A   RATIONAL
                    YResolution                  283      11B   RATIONAL
                    ResolutionUnit               296      128   SHORT                  1, 2 or 3
                                       24
TIFF 6.0 Specification                                                               Final—June 3, 1992
                       The BitsPerSample values listed above apply only to the main image data. If
                       ExtraSamples are present, the appropriate BitsPerSample values for those
                       samples must also be included.
                       Baseline TIFF RGB images were called TIFF Class R images in earlier versions
                       of the TIFF specification.



-----Original Message-----
From: B. Bogart [mailto:ben at ekran.org]
Sent: Tue 11/4/2008 6:06 PM
To: Green Bryan - bgreen
Cc: image-sig at python.org
Subject: Re: [Image-SIG] PIL not loading some TIFF files?
 
Thanks for the details.

I've passed this info onto the pd/Gem developers so they can add these
tags to all tifs written by the software.

Are these tags required as part of the TIFF spec? Or are they just best
practise?

Thanks again,
B. Bogart

Green Bryan - bgreen wrote:
> It appears that the problem has to do with the following tags not being
> set in the image.  I set these with the tiffset program and PIL then
> loaded the image without any trouble.  I do not know how to set these
> tags in PIL.  Maybe someone has a suggestion?  Also, if you open the
> file in GIMP and save the problem is fixed.  I understand this is not a
> solution for you-- just making note.  
> 
> Most viewers follow fairly closely to the tif spec (they also try and do
> the "right thing" for non-standard software)-- PIL is not so forgiving.
> If needed you could write a script to fix the tags on the fly using the
> command line tiffset program.  It is fast.
>  
> XResolution (282) RATIONAL (5) 1<72> 
> YResolution (283) RATIONAL (5) 1<72> 
> ResolutionUnit (296) SHORT (3) 1<2>
> 
> 
> -----Original Message-----
> From: image-sig-bounces+bryan.green=acxiom.com at python.org
> [mailto:image-sig-bounces+bryan.green=acxiom.com at python.org] On Behalf
> Of Green Bryan - bgreen
> Sent: Tuesday, November 04, 2008 4:52 PM
> To: B. Bogart; image-sig at python.org
> Subject: Re: [Image-SIG] PIL not loading some TIFF files?
> 
> There are some differences between the two.  Mask.tif claims to have
> been created by the GIMP and has a bps of 3 8-bit values.
> Store-0000.tif has a software type of PD/GEM and a bps of 4 8-bit
> values.
> 
> 
> c:\store-00000.tif:
> Magic: 0x4949 <little-endian> Version: 0x2a
> Directory 0: offset 1228808 (0x12c008) next 0 (0)
> ImageWidth (256) SHORT (3) 1<640>
> ImageLength (257) SHORT (3) 1<480>
> BitsPerSample (258) SHORT (3) 4<8 8 8 8>
> Compression (259) SHORT (3) 1<1>
> Photometric (262) SHORT (3) 1<2>
> StripOffsets (273) LONG (4) 1<8>
> SamplesPerPixel (277) SHORT (3) 1<4>
> StripByteCounts (279) LONG (4) 1<1228800>
> PlanarConfig (284) SHORT (3) 1<1>
> Software (305) ASCII (2) 7<PD/GEM\0>
> 
> c:\mask.tif:
> Magic: 0x4949 <little-endian> Version: 0x2a
> Directory 0: offset 921608 (0xe1008) next 0 (0)
> SubFileType (254) LONG (4) 1<0>
> ImageWidth (256) SHORT (3) 1<640>
> ImageLength (257) SHORT (3) 1<480>
> BitsPerSample (258) SHORT (3) 3<8 8 8>
> Compression (259) SHORT (3) 1<1>
> Photometric (262) SHORT (3) 1<2>
> DocumentName (269) ASCII (2) 66</home/bbogart/Projects/i ...>
> ImageDescription (270) ASCII (2) 22<Created with The GIMP\0>
> StripOffsets (273) LONG (4) 8<8 122888 245768 368648 491528 614408
> 737288 860168>
> Orientation (274) SHORT (3) 1<1>
> SamplesPerPixel (277) SHORT (3) 1<3>
> RowsPerStrip (278) SHORT (3) 1<64>
> StripByteCounts (279) LONG (4) 8<122880 122880 122880 122880 122880
> 122880 122880 61440>
> XResolution (282) RATIONAL (5) 1<72>
> YResolution (283) RATIONAL (5) 1<72>
> PlanarConfig (284) SHORT (3) 1<1>
> ResolutionUnit (296) SHORT (3) 1<2>
> 
> -----Original Message-----
> From: image-sig-bounces+bryan.green=acxiom.com at python.org
> [mailto:image-sig-bounces+bryan.green=acxiom.com at python.org] On Behalf
> Of B. Bogart
> Sent: Tuesday, November 04, 2008 4:14 PM
> To: image-sig at python.org
> Subject: [Image-SIG] PIL not loading some TIFF files?
> 
> Hello all,
> 
> I'm unable to get PIL (Image.open) to load certain TIFF files generated
> by another application (using libtiff).
> 
> According to imageMagick the files are the same type:
> 
> mask.tif TIFF 640x480 640x480+0+0 DirectClass 8-bit 900.383kb
> store-00000.tif[1] TIFF 640x480 640x480+0+0 DirectClass 8-bit 1.17202mb
> 
> mask.tif loads fine:
> 
>>>> image = Image.open("mask.tif")
>>>>
> 
> but store-00000.tif fails:
> 
>>>> image = Image.open("store-00000.tif")
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/usr/lib/python2.5/site-packages/PIL/Image.py", line 1917, in
> open
>     raise IOError("cannot identify image file")
> IOError: cannot identify image file
> 
> I'm running PIL 1.1.6-3 in python 2.5 on ubuntu hardy.
> 
> You can grab these two files from:
> 
> http://www.ekran.org/ben/tmp/mask.tif
> http://www.ekran.org/ben/tmp/store-00000.tif
> 
> This is a problem because it is files created by this very application I
> need to be able to read with PIL. Converting them is not practical
> because there will be at least 900 images and processing time is an
> issue.
> 
> Thanks,
> B. Bogart
> _______________________________________________
> Image-SIG maillist  -  Image-SIG at python.org
> http://mail.python.org/mailman/listinfo/image-sig
> ************************************************************************
> *
> The information contained in this communication is confidential, is
> intended only for the use of the recipient named above, and may be
> legally privileged.
> 
> If the reader of this message is not the intended recipient, you are 
> hereby notified that any dissemination, distribution or copying of this
> communication is strictly prohibited.
> 
> If you have received this communication in error, please resend this
> communication to the sender and delete the original message or any copy
> of it from your computer system.
> 
> Thank you.
> ************************************************************************
> *
> 
> _______________________________________________
> Image-SIG maillist  -  Image-SIG at python.org
> http://mail.python.org/mailman/listinfo/image-sig
> 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/image-sig/attachments/20081104/488b05a1/attachment-0001.htm>


More information about the Image-SIG mailing list