Java 获取图像的拍摄日期
我想查找图像的“拍摄日期”,而不是“修改日期”或“创建日期”。虽然我在stackoverflow上找到了一些链接,但没有人能够检索到它。图像格式为:tiff和RAW 使用Java 获取图像的拍摄日期,java,image,Java,Image,我想查找图像的“拍摄日期”,而不是“修改日期”或“创建日期”。虽然我在stackoverflow上找到了一些链接,但没有人能够检索到它。图像格式为:tiff和RAW 使用javax.imageio,我编写了下面的程序,但它不打印任何内容。这意味着没有可用的读卡器 File file = new File( fileName ); ImageInputStream iis = ImageIO.createImageInputStream(file);
javax.imageio
,我编写了下面的程序,但它不打印任何内容。这意味着没有可用的读卡器
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]));
}
}
File File=新文件(文件名);
ImageInputStream iis=ImageIO.createImageInputStream(文件);
迭代器阅读器=ImageIO.getImageReaders(iis);
if(readers.hasNext()){
//选择第一个可用的ImageReader
ImageReader=readers.next();
//将源附加到读取器
reader.setInput(iis,true);
//读取第一个图像的元数据
IIOMetadata元数据=reader.getImageMetadata(0);
字符串[]名称=元数据。getMetadataFormatNames();
int length=names.length;
for(int i=0;i
使用核心java库,是否有一种方法可以访问“date Take”,而不是“date created”或“date modified”。
此外,从操作系统中的图像属性可以看出,获取的数据
信息也可用
编辑:原来
阅读器
迭代器与之无关。i、 e.e尺寸为0。这只适用于tiff和原始图像。可以很好地使用jpeg我找不到任何使用java核心库的解决方案。找到一个名为的库,该库执行此任务
可以找到更多信息您是否检查了元数据树以查看是否可以找到日期?发布您目前发现的内容。是的。它什么也不印。如果图像是jpeg格式的,它会打印压缩等信息,但不会打印日期。可能会将读取器设置为忽略元数据:
System.out.println(reader.isIgnoringMetadata())代码>无需在图像中显示元数据。你不能指望它就在那里。我上次检查时,Java核心API在图像交互的大多数方面只支持JPEG和PNG。这可能就是为什么jpeg图像成功,而tiff和raw文件失败的原因。你能分享一个示例代码吗?