Java中xmp标签的作用_如何在Java中从JPEG读取XMP面部数据
我已经将Picasa的面部数据保存在JPEG文件中(在XMP中),现在我试图用Java读取该信息.到目前为止,我失败了,将不胜感激.
我正在尝试使用metadata-extractor库(尽管任何其他解决方案也可以).我可以阅读基本信息(例如日期,图像尺寸等),但是我在提取其他数据时迷失了方向.这是到目前为止我得到的:
File file -- this is my JPEG file
Metadata metadata = JpegMetadataReader.readMetadata(file);
XmpDirectory xmpDirectory = metadata.getDirectory(XmpDirectory.class);
XMPMeta xmpMeta = xmpDirectory.getXMPMeta();
System.out.println(xmpMeta.dumpObject());
结果:
ROOT NODE
http://www.metadataworkinggroup.com/schemas/regions/ = "mwg-rs:" (0x80000000 : SCHEMA_NODE)
mwg-rs:Regions (0x100 : STRUCT)
mwg-rs:AppliedToDimensions (0x100 : STRUCT)
stDim:h = "2793"
stDim:unit = "pixel"
stDim:w = "2047"
mwg-rs:RegionList (0x200 : ARRAY)
[1] (0x100 : STRUCT)
mwg-rs:Area (0x100 : STRUCT)
stArea:h = "0.69531"
stArea:unit = "normalized"
stArea:w = "0.790425"
stArea:x = "0.491451"
stArea:y = "0.41783"
mwg-rs:Name = "abcde"
mwg-rs:Type = "Face"
http://ns.adobe.com/xap/1.0/ = "xmp:" (0x80000000 : SCHEMA_NODE)
xmp:ModifyDate = "2014-04-06T19:43:24+01:00"
我不明白如何到达这些stArea:w,mwg-rs:Type =“ Face”等.
解决方法:
像往常一样,在发布后立即有found a solution.我将在下面列出以将其放在此处.
try {
Metadata metadata = ImageMetadataReader.readMetadata(imageFile);
XmpDirectory xmpDirectory = metadata.getDirectory(XmpDirectory.class);
XMPMeta xmpMeta = xmpDirectory.getXMPMeta();
XMPIterator itr = xmpMeta.iterator();
while (itr.hasNext()) {
XMPPropertyInfo pi = (XMPPropertyInfo) itr.next();
if (pi != null && pi.getPath() != null) {
if ((pi.getPath().endsWith("stArea:w")) || (pi.getPath().endsWith("mwg-rs:Name")) || (pi.getPath().endsWith("stArea:h")))
System.out.println(pi.getValue().toString());
}
}
} catch (final NullPointerException npe) {
// ignore
}
我在这里不喜欢的是,它遍历所有属性,而不仅仅是读取必需的属性.有更好(更快)的解决方案吗?
标签:picasa,xmp,metadata-extractor,java
来源: https://codeday.me/bug/20191121/2054131.html
Java中xmp标签的作用_如何在Java中从JPEG读取XMP面部数据相关推荐
- shell中竖线的作用_如何在 Linux 中安装、配置和使用 Fish Shell?
每个 Linux 管理员都可能听到过 shell 这个词.你知道什么是 shell 吗? 你知道 shell 在 Linux 中的作用是什么吗? Linux 中有多少个 shell 可用? -- Ma ...
- java从数组查找指定整数_如何在Java中使用重复项查找整数数组中的K个缺失数字?...
java从数组查找指定整数 自从我讨论任何编码或算法面试问题以来已经有很长时间了,因此我想重新考虑一种最流行的基于数组的编码问题,即在给定数组中查找缺失的数字. 在进行编程工作面试之前,您可能已经听说 ...
- java中md5加密和解密_如何在java中实现md5加密和解密
如何在java中实现md5加密和解密 关注:273 答案:1 mip版 解决时间 2021-01-19 20:37 提问者精神疯裂 2021-01-19 05:36 如何在java中实现md5加密 ...
- java创建一个不可变对象_如何在Java中创建不可变类?
java创建一个不可变对象 Today we will learn about the immutable class in Java. What are immutable classes? The ...
- java 反射父类私有属性值_如何在Java中通过反射访问父类的父类的私有字段? - java...
在一个API中,我使用的是一个抽象类(A类),该类具有一个私有字段(A.privateField). B类在API中扩展了A类. 我需要扩展B类的实现,即C类,但是我需要A类的privateField ...
- java中如何设置字体样式_如何在JAVA中设置字体样式和大小?
我是新来的Java和无法弄清楚如何格式化我的代码是这样的: 字体"宋体"字体大小"9"大胆如何在JAVA中设置字体样式和大小? 我想整个段落的格式化文本.我真的 ...
- python中none是什么类型_如何在Python中”测试”None类型?
我有一个方法,它有时返回一个非类型的值.那么我怎样才能质疑一个非类型的变量呢?例如,我需要使用if方法 if not new: new = '#' 我知道这是错误的方式,我希望你理解我的意思. 我想这 ...
- php oracle 操作 sql语句中能不能添加数组_如何在PHP中使用Oracle数据库_php
在php3.0以上版本中,php内置了几乎目前所有的数据库处理函数,包括oracle;在本文中我们通过一个实例来介绍了如何使用这些函数来操作Oracle数据库. PHP提供了2大类API(应用程序接口 ...
- mysql中用户权限的授予_如何在MySQL中创建用户和授予权限
如何创建MySQL用户并授予权限?为了实现良好的安全性,需要为每个应用程序创建单独的用户帐户,而不是root用户访问数据库.这将确保应用程序无法访问其他应用程序的数据库.因此需要mysql管理员(ro ...
最新文章
- 【转载】ogre内存管理
- Vue2.0项目中使用sass(踩坑之路)
- python怎么对齐文件_说说在 python 中,如何对齐文本
- 【探秘ES6】系列专栏(二):迭代器和for-of循环
- ASP.NET进阶(8):HttpModule和HttpApplication
- Centos7.4 yum 安装MariaDB
- 领导:“请在今晚进行网络系统升级”
- hdu4540---DP入门
- python模拟登录12306_python基于selenium模块实现自动登录12306网站
- UE4 C++如何关闭进程?
- ExactScan Pro 18.12.24 Mac 破解版 万能扫描仪整合工具
- netty面试题及答案
- sublime主题选择
- 数字转型遇阻 ,Riverbed重塑APM工具
- Android开发之自定义圆角矩形图片ImageView
- Mitmproxy代理设置和证书安装
- MATLAB用rbf拟合sinx,为什么径向基(RBF)网络拟合度很差呢?
- bzoj 4399 魔法少女LJJ
- 5位评委对参赛选手进行打分,将所有的打分结果存储到对应类型的数组中, 将所有的评分结果去除一个最低分,去除一个最高分,然后获取的平均分数为 选手的最终得分.设计程序,用键盘输入5位评委的评分,并打印输
- 朱志星:道路交通事故“减量控大”技术治理思路和对策
热门文章
- BacNet开发入门2
- html如何复用其它页面,编写可以复用的 HTML 模板
- 替换html标签内容正则表达式,正则表达式,替换所有HTML标签的简单实例
- python selenium_Python+selenium自动化测试
- 基于控制台应用程序的生命游戏java_Java在现实中实际开发的主要领域在哪些方面?...
- html文本分类输出,构建中文网页分类器对网页进行文本分类
- Android开发之使用TabLayout快速实现选项卡切换功能(附源码下载)
- Ajax POST请求获取后台返回的数据
- oracle alter_log,在线查看alter.log文件内容
- Kubernetes上的负载均衡详解