首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java/ImageIO在不读取整个文件的情况下获取图像尺寸?

Java/ImageIO在不读取整个文件的情况下获取图像尺寸?
EN

Stack Overflow用户
提问于 2009-10-13 10:01:32
回答 4查看 34.3K关注 0票数 67

有没有一种方法可以在不读取整个文件的情况下获得图像的尺寸?

代码语言:javascript
复制
URL url=new URL(<BIG_IMAGE_URL>);
BufferedImage img=ImageIO.read(url);
System.out.println(img.getWidth()+" "+img.getHeight());
img=null;
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-13 20:55:18

代码语言:javascript
复制
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();
        }
    }
} 

感谢sfussenegger的建议

票数 120
EN

Stack Overflow用户

发布于 2009-10-13 10:23:33

使用ImageReader.getHeight(int)ImageReader.getWidth(int)通常只读取图像标题(我正在查看JDK6源代码)。所以ImageReader很可能是最好的选择。

票数 17
EN

Stack Overflow用户

发布于 2009-10-13 10:17:48

你得去调查一下ImageReader.getImageMetadata()。不幸的是,Java Image API一点也不容易使用。

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

有更容易使用的第三方库,例如MediaUtil (最近一次更新是在3年前,但它对我来说工作得很好)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1559253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档