从图像中获取 TIFF 标签
Getting TIFF Tags from an Image
我正在尝试渲染一个 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 图像的方法?或者有没有办法修改上面的代码来达到这个要求
要获取 Tiff 标签,您不需要先渲染图像。如果您渲染图像,如果任何标签不正确,您肯定会得到该异常。
试试这个,
ByteArraySeekableStream sStream= new ByteArraySeekableStream(imageByteArray);
并从流中获取 Tiff 目录而不是渲染图像
TIFFDirectory tiffDr = new TIFFDirectory(sStream, 0)
从这里你可以得到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 图像的方法?或者有没有办法修改上面的代码来达到这个要求
要获取 Tiff 标签,您不需要先渲染图像。如果您渲染图像,如果任何标签不正确,您肯定会得到该异常。
试试这个,
ByteArraySeekableStream sStream= new ByteArraySeekableStream(imageByteArray);
并从流中获取 Tiff 目录而不是渲染图像
TIFFDirectory tiffDr = new TIFFDirectory(sStream, 0)
从这里你可以得到Tiff标签,然后对图像中可用的标签进行验证。希望这有帮助。