잘 작동하는 TIF/TIFF 이미지를 TIF/TIFF 이미지로 변환하려고하는데, TIF 이미지가 거의 없으면 다음과 같이 IllegalArgumentException이 발생합니다. (0x4949 또는 0x4d4d가 아닌) 잘못된 엔디안 태그가 있습니다.TIF/TIFF를 JPG로 변환 : 잘못된 엔디안 태그
예외 :
java.io.IOException: Bad endianness tag (not 0x4949 or 0x4d4d).
at com.sun.media.jai.codecimpl.CodecUtils.toIOException(CodecUtils.java:76)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.getNumPages(TIFFImageDecoder.java:98)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.decodeAsRenderedImage(TIFFImageDecoder.java:103)
at com.sun.media.jai.codec.ImageDecoderImpl.decodeAsRenderedImage(ImageDecoderImpl.java:140)
at com.pkg.jae.utils.GenericImageUtils.convertTiffToJpg(GenericImageUtils.java:35)
at com.pkg.jae.utils.GenericImageUtils.main(GenericImageUtils.java:92)
Caused by: java.lang.IllegalArgumentException: Bad endianness tag (not 0x4949 or 0x4d4d).
at com.sun.media.jai.codec.TIFFDirectory.getNumDirectories(TIFFDirectory.java:595)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.getNumPages(TIFFImageDecoder.java:96)
... 4 more
코드 기능 :
public static void convertTiffToJpg(String strTiffUrl,String strJpgFileDestinationUrl) throws Exception {
try {
FileSeekableStream obj_FileSeekableStream = new FileSeekableStream(new File(strTiffUrl));
ImageDecoder obj_ImageDecoder = ImageCodec.createImageDecoder(EXT_TIFFX, obj_FileSeekableStream, null);
RenderedImage obj_RenderedImage = obj_ImageDecoder.decodeAsRenderedImage();
JAI.create("filestore", obj_RenderedImage,strJpgFileDestinationUrl, EXT_JEPGX);
obj_RenderedImage = null;
obj_ImageDecoder = null;
obj_FileSeekableStream.close();
} catch (Exception ex) {
throw ex;
}
}
사람이 문제를 알고 있고이 도움이 될 수 있다면.
16 진수 편집기로 TIFF 파일을 검사하십시오. 첫 번째 4 바이트는 무엇입니까? – usr2564301
16 진수 편집기에서 이미지를 검사했습니다. ff d8 ff e0 00 10 4a 46 ... –
TIFF 파일이 필요할 때 JPEG 파일을 전달한다는 의미입니다. – BitBank