【发布时间】:2014-08-13 20:02:08
【问题描述】:
我有几个包含特定标题的文件,后面是 TIFF 图像数据。 如何将这些 TIFF 图像数据写入 TIFF 文件? 感谢您的帮助。
编辑:这是我测试的:
InputStream is = new FileInputStream(filePath);
is.skip(252);
BufferedImage bufferedImage = ImageIO.read(is);
File fileOut = new File(fileOutPath);
ImageIO.write(bufferedImage,"TIFF", fileOut);
我跳过文件的特定标头 (252Bytes) 以获取 Tiff 图像数据字节。 但是 bufferedImage 是空的,所以我得到一个 java.lang.IllegalArgumentException: im == null!例外。
在简历中,我有一个没有 TIFF 标头的 TIFF 文件。 TIFF 标头已被特定的标头替换,但图像字节与 TIFF 文件中的完全相同。
编辑: 感谢 haraldK,我终于可以创建一个 TIFF 标头了。但我无法打开图像,可能是因为压缩:“M2 = Modified Read Code II (MRII),即传真组 4”。
这是我创建的标题:
SubFileType (1 Long): Zero
ImageWidth (1 Long): 210
ImageLength (1 Long): 297
BitsPerSample (3 Short): 8, 8, 8
Compression (1 Short): Group 4 Fax (aka CCITT FAX4)
Photometric (1 Short): RGB
StripOffsets (1 Long): 306
SamplesPerPixel (1 Short): 3
RowsPerStrip (1 Short): 297
StripByteCounts (1 Long): 187110
ResolutionUnit (1 Short): None
XResolution (72 Rational):
YResolution (1 Rational): Unexpected numeric
DateTime (20 ASCII): 2014:07:12 10:51:51
Software (28 ASCII): Put your software name here
ImageDescription (30 ASCII): Put an image description here
在合并标题和图像数据之前我应该解压缩图像数据吗?
【问题讨论】:
-
提供示例 TIFF 数据。你是如何获得 TIFF 图像数据的。还提供您尝试过的内容。
-
与JAI.
-
TIFF 标头已被另一个特定标头替换,但图像数据字节相同。所以我跳过了标题,我得到了图像数据字节。但我不知道如何重建 TIFF 标头。
-
不,是完全相同的问题。
-
No is 不为空,我可以正常阅读并获得正确的长度。关于 ImageIO.read(Inputstream) 的文档说:如果没有注册的 ImageReader 声称能够读取结果流,则返回 null