1997.05.02 07:04 "BIG TIFF file problems", by Hans Christiansen

1997.05.02 07:04 "BIG TIFF file problems", by Hans Christiansen

Hello

I am having problems with very large tiff files created by our RIP software.

The tiff file created is a bilevel tiff comprising of uncompressed data in a single strip!! The size of the file is 707,953,939 bytes.

What I want to do is compress this file using lzw, packbits or g4 compression.

This is however not possible as I get the following error when trying to convert using tiffcp:

  # tiffcp -s -c lzw a1.tif a1c.tif
  a1.tif: Warning, incorrect count for field "StripOffsets" (1, expecting
  111); tag ignored.

I have a theory as to why this is happening:

Looking at a tiffdump of the file:

  # tiffdump a1.tif
  a1.tif:
  Magic: 0x4d4d <big-endian> Version: 0x2a
  Directory 0: offset 8 (0x8) next 0 (0)
  SubFileType (254) LONG (4) 1<0>
  ImageWidth (256) LONG (4) 1<85640>
  ImageLength (257) LONG (4) 1<66133>
  BitsPerSample (258) SHORT (3) 1<1>
  Compression (259) SHORT (3) 1<1>
  Photometric (262) SHORT (3) 1<0>
  SamplesPerPixel (277) SHORT (3) 1<1>
  StripOffsets (273) LONG (4) 1<174>
  RowsPerStrip (278) SHORT (3) 1<597>
  StripByteCounts (279) LONG (4) 1<707953765>
  XResolution (282) RATIONAL (5) 1<2400>
  YResolution (283) RATIONAL (5) 1<2400>

I noticed that the width (85640) multiplied by the height (66133) (=5,663,630,120) exceeds the maximum possible value of the type uint32 which is 4,294,967,295. It is this 'overflow' that causes tiffcp to fail!

I am wondering if anyone agrees with my theory.

If so, or even if not, is there anybody who can help me solve this problem?

Hans Christiansen

hans@ljungbergs.se

Ljungbergs Tryckeri AB                Tel. +46 435 120 40
Box 100                               Fax. +46 435 126 35
S-264 22 Klippan                      Mob. +46 70 518 26 49
Sweden