使用 Java 从单个文件读取图像元数据

2023-12-01

我想从单个文件中读取图像元数据。 我尝试了以下代码:

http://johnbokma.com/java/obtaining-image-metadata.html

当我运行它时,我得到build successful但什么也没发生。

public class Metadata {

    public static void main(String[] args) {
        Metadata meta = new Metadata();
        int length = args.length;
        for ( int i = 0; i < length; i++ )
        meta.readAndDisplayMetadata( args[i] );
    }

    void readAndDisplayMetadata( String fileName ) {
        try {

            File file = new File( fileName );
            ImageInputStream iis = ImageIO.createImageInputStream(file);
            Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);

            if (readers.hasNext()) {

                // pick the first available ImageReader
                ImageReader reader = readers.next();

                // attach source to the reader
                reader.setInput(iis, true);

                // read metadata of first image
                IIOMetadata metadata = reader.getImageMetadata(0);

                String[] names = metadata.getMetadataFormatNames();
                int length = names.length;
                for (int i = 0; i < length; i++) {
                    System.out.println( "Format name: " + names[ i ] );
                    displayMetadata(metadata.getAsTree(names[i]));
                }
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

}

请帮忙 :)


您没有正确指定文件的路径。下面的变化应该表明了这一点!

public static void main(String[] args) {
    Metadata meta = new Metadata();
    int length = args.length;
    for ( int i = 0; i < length; i++ ) {
        if (new File(args[i]).exists()) {
            meta.readAndDisplayMetadata( args[i] );
        } else {
            System.out.println("cannot find file: " + args[i]);
        }
    }
}

编辑 - 更简单的代码示例

我们现在静态定义要使用的文件。

public static void main(String[] args) {
    Metadata meta = new Metadata();
    String filename = "C:\\Users\\luckheart\\Pictures\\Sample Pictures\\Koala.jpg";
    if (new File(filename).exists()) {
        meta.readAndDisplayMetadata(filename);
    } else {
        System.out.println("cannot find file: " + filename);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Java 从单个文件读取图像元数据 的相关文章

  • Java - 如何将特殊字符放入字符串中

    Java 似乎有很好的字符串处理能力 尽管如此 我还是遇到了最简单的问题 我需要动态字符串 它们在运行时更改 因此字符串类型不是一个好的选择 因为它们是不可变的 所以我使用字符数组 设置起来有点痛苦 但至少它们是可以修改的 我想创建一个字符
  • JavaFX 图像未在舞台中显示

    我尝试了很多次 尝试了很多方法 但都无法让自己的形象在舞台上如我所愿 我认为这可能与java寻找资源的路径有关 但我不确定 因为我刚刚开始使用视觉库 在本例中为JavaFX 这是我的目录结构 MyProject assets img myI
  • 无法在类对象的 ArrayList 中存储值。 (代码已编辑)

    这基本上是一个 Java 代码转换器 它涉及一个 GUI 让用户输入类类型 名称和方法 为了存储值 我创建了一个类VirtualClass与ArrayList
  • jvm 次要版本与编译器次要版本

    当运行使用具有相同主要版本但次要版本高于 JVM 的 JDK 编译的类时 JVM 会抛出异常吗 JDK 版本并不重要 类文件格式版本 http blogs oracle com darcy entry source target class
  • Junit maven构建错误(maven-surefire-plugin:2.19.1:测试失败:分叉进程中出现错误)[重复]

    这个问题在这里已经有答案了 我通过引用创建了一个示例 struts 2 项目和 J unit 测试用例link http self learning java tutorial blogspot com au 2015 04 struts2
  • Spring3/Hibernate3/TestNG:有些测试给出 LazyInitializationException,有些则没有

    前言 我在单元测试中遇到了 LazyInitializationException 的问题 而且我很难理解它 正如你从我的问题中看到的那样Spring 中的数据库会话 https stackoverflow com questions 13
  • RMI 中的引用传递问题? [复制]

    这个问题在这里已经有答案了 有人可以告诉我我错在哪里 为什么这个 RMI 聊天应用程序不起作用 目标是通过远程对象或序列化对象实现客户端 服务器和逻辑之间的解耦 import javax swing import java awt even
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我想在java中使用XQuery进行Xml处理

    我想用XQuery用于从 java 中的 Xml 获取数据 但我没有得到需要为此添加哪个 Jar 我在谷歌上搜索了很多 但没有得到任何有用的例子 例如我得到以下链接 https docs oracle com database 121 AD
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • 使用 secp256r1 曲线和 SHA256 算法生成 ECDSA 签名 - BouncyCastle

    我正在尝试使用带有 secp256r1 曲线 P256 的 ECDSA 和用于消息哈希的 SHA256 算法生成签名 我也在使用 Bouncy Castle 库 下面的代码 public class MyTest param args pu
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 使用 JAD 反编译 java - 限制

    我正在尝试使用 Java 中的 JAD 反编译几个 jar 文件 我也尝试过 JD GUI 但运气更差 但出现了很多错误 一种类型 易于修复 似乎是内部类 但我也发现了这段代码 static int SWITCH TABLE atp com
  • 对于当前月份和日期但年份不同的日期,经过的月份计算未给出正确的结果

    我正在尝试计算自特定日期以来经过的月份 该函数工作正常 尽管如果我将今天的日期与过去的不同年份放在一起 它会给我一个月的差异 不到一个月 假设对于所有日期 该函数都运行良好 除了 如果今天是 2014 03 06 YYYY MM DD 并且
  • 如何用表达式语言获取布尔属性?

    如果我有一堂这样的课 class Person private int age public int getAge return age public boolean isAdult return age gt 19 我可以得到age像这样
  • 每次我们调用浏览器时,在 selenium 中使用 driver.manage().window().maximize() 是否好?

    We use driver manage window maximize 最大化浏览器 我在网上看到一些使用的例子driver manage window maximize 尽管不需要最大化浏览器 例如 gmail 登录 我还看到使用 se

随机推荐

  • 从android中的edittext框获取XXX-XXX-XXXX格式的电话号码

    你好 我正在编写一个 android 其中用户在编辑文本框中输入电话号码 我希望数字采用 xxx xxx xxxx 的形式 这意味着在用户输入前 3 个字母和另一个 后 应自动出现 I used EditText anum EditText
  • Java:如何注册侦听 JFrame 运动的侦听器

    如何跟踪 JFrame 本身的移动 我想注册一个每次都会被回调的监听器JFrame getLocation 将返回一个新值 EDIT这是一个代码 显示接受的答案正在解决我的问题 import javax swing public class
  • 使用通配符 SSL 证书通过 HTTPS 进行 WCF

    我们是在线浏览器内管理工具的开发人员 我们的主要软件目前通过互联网托管并可供客户访问 每个客户都有自己的主要软件实例和子域 例如 customerA ourdomain com 定向到在虚拟服务器上运行的客户 A 的服务 customerB
  • 使用正弦或余弦函数的 C/C++ 3D 烟花效果

    I am trying to implement fireworks effect in C I have a cube with dimensions 10x10x10 A rocket starts from the ground an
  • 从预先训练的 NASnet 网络进行迁移学习。如何知道要冻结的层数?

    为了训练图像分类模型 使用 Keras 或 Tensorflow 我想使用我自己的图像数据集重新训练 NASNetMobile 的一定数量的层 在本文中 https arxiv org pdf 1707 07012 pdf A 7 节 我们
  • MS SQL 上的字符串连接用于一组行

    假设我有 2 张桌子 1 与用户 另一个记录哪些用户使用了哪些代码 Users Id Name 1 John 2 Doe Codes Id UserId code 1 1 145 2 1 187 3 2 251 现在我想提取一个查询 结果如
  • 从 uploadify jquery 插件获取文件名

    这是我的第一篇文章 我在这里尝试获取上传文件的名称 以便用户可以根据需要删除它 就像雅虎一样 uploadifysub1 uploadify uploader JS uploadify swf script JS uploadify php
  • .Net 连接池 MySQL 临时表

    我们有一个在 NET MVC Web 应用程序中使用的 MySQL 数据库 我们实施连接池 因为它具有一些巨大的性能优势 我们还在一些关键存储过程中完成了一些相当繁重的处理 他们创建几个临时表和用户变量 这些临时表和用户变量在连接的生命周期
  • gganimate 根据时间对多条路径进行动画处理

    我解析了电子游戏 反恐精英 中有关手榴弹投掷的一些数据 下面的示例数据显示我有关于手榴弹从哪里投掷 手榴弹爆炸的位置以及何时投掷手榴弹的位置 df lt data frame pos x c 443 6699994744587 459 45
  • 您可以根据范围创建分组吗? [复制]

    这个问题在这里已经有答案了 这与另一个问题 我认为这确实解决了一个更简单的问题 所以我在这里问更简单的问题 希望它能帮助我解决更复杂的问题 我希望能够在 linq to sql 查询中创建一个分组 该分组基于另一组数据中的一系列数据 不过
  • 连接到 Hive 时出错。Error:java.sql.SQLException: 找不到适用于 jdbc:hive2 的驱动程序:

    您好 我正在尝试从 Nodejs 连接到 hive 我用了https www npmjs com package jdbc安装 JDBC 我收到以下错误 错误 运行静态方法 java sql SQLException 时出错 没有合适的 找
  • 如何将谷歌字体连接到页面?

    我已经使用了 Google Fonts 中关于如何设置字体的建议 所以我做了以下动作 1 在页面添加此依赖 2 将CSS设置为body标签 html body font family Roboto sans serif background
  • Python/Scapy:仅嗅探传入数据包

    我可以在 Scapy 中仅嗅探传入数据包或仅嗅探传出数据包吗 无需在数据包字段上添加过滤器 简短的回答 不 Scapy 的嗅探功能不区分传入和传出的数据包 如果你想根据源mac进行过滤 你可以这样做 MYMAC 12 34 56 78 90
  • 如何创建每个点有两种颜色的散点图?

    我正在尝试绘制两个地面实况 and my在 matplotlib 中同时分类 目前 我只在应用后绘制真实情况tsne在特征空间上并使用以下代码添加边缘 from matplotlib collections import LineColle
  • 多维矩阵(/数组)的矩阵乘法 - 如何避免循环?

    我正在尝试使用包含要相乘的多个矩阵的数组来评估矩阵乘法 这可以通过使用 np dot 或 Py3 5 中的新 运算符 的两个矩阵轻松实现 但我正在努力扩展它以有效地评估我的多维数组 举个例子 假设我有形状为 5 3 3 的矩阵 A 和形状为
  • 样式表 HTML 定义中的 media="" 属性指的是什么?

    相信有些人已经看过以下内容 或者其他什么 但媒体属性实际上有什么作用呢 我创建了几个网站 但在链接样式表时从未使用过媒体属性 这是一个错误吗 谢谢 阿米特 w3可以最好地解释它 媒体类型与用于查看页面的媒体有关 如果有人正在打印该页面 pr
  • Cortex-A57可以双发出128位neon指令吗?

    Cortex A57 优化指南指出 大多数对 128 位向量数据进行操作的整数指令都可以双发出 第 24 页 整数基本 F0 F1 逻辑 F0 F1 执行吞吐量 2 然而 根据我们的内部 综合 基准测试 即使有大量可用的指令并行性 吞吐量似
  • C# 枚举到 postgres 枚举

    我目前正在使用 postgres 枚举 CREATE TYPE http action enum AS ENUM GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH CREATE TAB
  • 在 Backbone.js 中实例化子视图时如何避免内存泄漏

    myView Backbone View extend event binding etc etc render function render some DOM anotherView Backbone View extend event
  • 使用 Java 从单个文件读取图像元数据

    我想从单个文件中读取图像元数据 我尝试了以下代码 http johnbokma com java obtaining image metadata html 当我运行它时 我得到build successful但什么也没发生 public