Uploaded image for project: 'Commons Imaging'
  1. Commons Imaging
  2. IMAGING-42

Sanselan 0.97 can't read TIFF file without tag "Samples Per Pixel"

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.97
    • 1.0-alpha1
    • Format: TIFF
    • None
    • Any

    Description

      Test.java
      package test;
      import ...;
      public class Test {
      	public static void main	(String[] args) {
      		File fin = new File("/file.tif");
      		File fout = new File("/file.png");
      		try {
      			Map params = new Hashtable();
      			BufferedImage image = Sanselan.getBufferedImage(fin);
      			Sanselan.writeImage(image, fout, ImageFormat.IMAGE_FORMAT_PNG, new Hashtable());
      		} catch (Exception e) {
      			e.printStackTrace();
      		}
      	}
      }
      

      org.apache.sanselan.ImageReadException: Missing expected field: 277 (0x115: Samples Per Pixel):
      at org.apache.sanselan.formats.tiff.TiffDirectory.findField(TiffDirectory.java:186)
      at org.apache.sanselan.formats.tiff.TiffImageParser.getBufferedImage(TiffImageParser.java:463)
      at org.apache.sanselan.formats.tiff.TiffDirectory.getTiffImage(TiffDirectory.java:163)
      at org.apache.sanselan.formats.tiff.TiffImageParser.getBufferedImage(TiffImageParser.java:441)
      at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1264)
      at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1231)
      at test.Test.main(Test.java:24)

      24 is line: "BufferedImage image = Sanselan.getBufferedImage(fin);"

      I look at sources and see that TIFF_TAG_SAMPLES_PER_PIXEL is mandatory tag:
      "int samplesPerPixel = directory.findField(TIFF_TAG_SAMPLES_PER_PIXEL, true).getIntValue();"
      Why?

      ImageMagick simple show warning and convert it correctly:
      Unknown field with tag 32309 (0x7e35) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/761.
      Unknown field with tag 32950 (0x80b6) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/761.
      KDE applications (gwenview, okular, kolourpaint) show warning and open too:
      TIFFReadDirectory: Warning, Unknown field with tag 32309 (0x7e35) encountered.
      TIFFReadDirectory: Warning, Unknown field with tag 32950 (0x80b6) encountered.

      Do I need to check not released versions (from sources)?

      Also TIFF compression 4 isn't supported, but I saw Issue that Sanselat 1.0 is support it, but 1.0 isn't released yet.

      Attachments

        Activity

          People

            Unassigned Unassigned
            vvd VVD
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: