从图像中获取TIFF标签

时间:2018-05-08 16:34:14

标签: java image tiff

我正在尝试渲染Tiff图像以从中提取标签,这是我迄今为止所做的:

ByteArraySeekableStream sStream= new ByteArraySeekableStream(imageByteArray);
ImageDecoder imgDecoder = ImageCodec.createImageDecoder("TIFF",sStream,null);
RenderedImage renderedImage = imgDecoder.decodeAsRenderedImage();

这似乎适用于所有积极情况,其中假设我们有一个TIFF图像,其中包含缺少的标记。

例如:如果缺少图像长度,则会出现以下异常:

java.io.IOException: "Image Length", a required field, is not present in the TIFF file

但我不希望它抛出任何异常,而是应该使用任何TIFF标签呈现图像。

还有其他渲染TIFF图像的方法吗?或者有没有办法修改上面的代码来达到这个要求。

1 个答案:

答案 0 :(得分:1)

要获取Tiff标签,您不需要先渲染图像。如果您渲染图像,如果任何标记不正确,您肯定会得到该异常。

相反,试试这个,

ByteArraySeekableStream sStream= new ByteArraySeekableStream(imageByteArray);

从流中获取Tiff目录而不是渲染图像

TIFFDirectory tiffDr = new TIFFDirectory(sStream, 0)

由此您可以获取Tiff标签,然后对图像中的可用标签进行验证。希望这会有所帮助。