IllegalArgumentException:获取tiff文件页数时的错误字节序标记

时间:2016-10-26 17:27:33

标签: java tiff endianness jai

我在操作tiff文件时遇到了一个奇怪的错误。我已经做了类似的其他文件格式甚至其他tiff文件。但突然间,我得到了以下信息:

Bad endianness tag (not 0x4949 or 0x4d4d).
java.lang.IllegalArgumentException: Bad endianness tag (not 0x4949 or 0x4d4d).
at com.sun.media.jai.codec.TIFFDirectory.getNumDirectories(TIFFDirectory.java:588)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.getNumPages(TIFFImageDecoder.java:105)
at br.com.org.sofia.util.PdfUtil.gerarPDFATiff(PdfUtil.java:213)
at br.com.GerarControler.gerarPDFA(GerarControler.java:182)
at br.com.controller.IndexadorControle.indexarUpload(IndexadorControle.java:331)
at br.com.controller.IndexadorControle.indexarUpload(IndexadorControle.java:289)
at sofia.control.BuscaUploadController$7.call(BuscaUploadController.java:720)
at sofia.control.BuscaUploadController$7.call(BuscaUploadController.java:703)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.lang.Thread.run(Thread.java:745)

java类:

import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageDecoder;

public class PdfUtil {

...

  Path path = Paths.get(getInput()); //getInput() returns a string path to the tiff file
  byte[] tiffImage = Files.readAllBytes(path);

  ByteArrayOutputStream outStream = new ByteArrayOutputStream();
  InputStream inputStream = new ByteArrayInputStream(tiffImage);
  ImageDecoder tiffDecoder = ImageCodec.createImageDecoder("tiff", inputStream, null);
  int pages = tiffDecoder.getNumPages();
...
}

0 个答案:

没有答案