为了账号安全,请及时绑定邮箱和手机立即绑定

Java / ImageIO获取图像尺寸而不读取整个文件?

Java / ImageIO获取图像尺寸而不读取整个文件?

摇曳的蔷薇 2019-10-25 15:34:24
有没有一种方法可以获取图像尺寸而无需读取整个文件?URL url=new URL(<BIG_IMAGE_URL>);BufferedImage img=ImageIO.read(url);System.out.println(img.getWidth()+" "+img.getHeight());img=null;
查看完整描述

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();

        }

    }


查看完整回答
反对 回复 2019-10-25
?
守候你守候我

TA贡献1802条经验 获得超10个赞

使用ImageReader.getHeight(int)和ImageReader.getWidth(int)通常仅读取图像标头(我在看JDK6源代码)。因此,ImageReader很可能是最佳选择。


查看完整回答
反对 回复 2019-10-25
?
函数式编程

TA贡献1807条经验 获得超9个赞

您必须调查一下ImageReader.getImageMetadata()。不幸的是,Java Image API根本不易于使用。


您可以在的软件包文档中找到元数据格式的说明javax.imageio.metadata。


有一些更易于使用的第三方库,例如MediaUtil(最近更新3年,但对我来说效果很好)。


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 760 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信