Seb*_*itt 3 java png image javax.imageio
我正在尝试按照此处提出的解决方案使用 java 读取 PNG 文件的元数据。
但是该方法ImageIO.getImageReaders(inputStream)返回一个空的读者列表。我通过读取流ImageIO.read并将结果图像渲染到屏幕上来确保流是正确的。
这就是我感到困惑的原因:由于ImageIO.read返回了一个有效的图像,我假设有人ImageReader声称能够解释这个流。解释图像数据和图像元数据之间有区别吗?
这个问题的任何提示甚至解决方案?
非常感谢。
我相信ImageIO.getImageReaders()需要一个ImageInputStream,您可以尝试InputStream使用createImageInputStream创建一个。我想这就是ImageIO.read(InputStream)引擎盖下的作用。
无论如何,如果你已经知道你有一个 PNG,为什么不使用getImageReadersByFormatName("png")?
顺便说一句:高度和宽度(以及颜色模型等)可以被视为“图像元数据”,因为它们不是像素值(这将是真实数据)的一部分,但通常来说,它们被视为而是作为图像(基本)属性。图像元数据通常(特别是在IIOMetadata 中)被理解为额外的“杂项”数据(如物理分辨率、时间戳),通常不需要访问图像数据。