3 回答

TA贡献1828条经验 获得超3个赞
try(ImageInputStream in = ImageIO.createImageInputStream(resourceFile)){
final Iterator<ImageReader> readers = ImageIO.getImageReaders(in);
if (readers.hasNext()) {
ImageReader reader = readers.next();
try {
reader.setInput(in);
return new Dimension(reader.getWidth(0), reader.getHeight(0));
} finally {
reader.dispose();
}
}
}

TA贡献1802条经验 获得超10个赞
使用ImageReader.getHeight(int)和ImageReader.getWidth(int)通常仅读取图像标头(我在看JDK6源代码)。因此,ImageReader很可能是最佳选择。

TA贡献1807条经验 获得超9个赞
您必须调查一下ImageReader.getImageMetadata()。不幸的是,Java Image API根本不易于使用。
您可以在的软件包文档中找到元数据格式的说明javax.imageio.metadata。
有一些更易于使用的第三方库,例如MediaUtil(最近更新3年,但对我来说效果很好)。
添加回答
举报