java获取图片的长宽_如何使用Java获取图像的高度和宽度?

我发现了另一种读取图像大小的方法(更通用)。您可以将ImageIO类与ImageReaders一起使用。这是示例代码:

private Dimension getImageDim(final String path) {

Dimension result = null;

String suffix = this.getFileSuffix(path);

Iterator iter = ImageIO.getImageReadersBySuffix(suffix);

if (iter.hasNext()) {

ImageReader reader = iter.next();

try {

ImageInputStream stream = new FileImageInputStream(new File(path));

reader.setInput(stream);

int width = reader.getWidth(reader.getMinIndex());

int height = reader.getHeight(reader.getMinIndex());

result = new Dimension(width, height);

} catch (IOException e) {

log(e.getMessage());

} finally {

reader.dispose();

}

} else {

log("No reader found for given format: " + suffix));

}

return result;

}

请注意,getFileSuffix是返回路径扩展名而不包含“。”的方法。因此例如:png,jpg等。示例实现为:

private String getFileSuffix(final String path) {

String result = null;

if (path != null) {

result = "";

if (path.lastIndexOf('.') != -1) {

result = path.substring(path.lastIndexOf('.'));

if (result.startsWith(".")) {

result = result.substring(1);

}

}

}

return result;

}

该解决方案非常快,因为仅从文件读取图像大小,而不是从整个图像读取。我对其进行了测试,无法与ImageIO.read的性能进行比较。我希望有人会觉得有用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值