我想找到图像的“拍摄日期”,而不是“修改日期”或“创建日期”。虽然我在 stackoverflow 上找到了一些链接,但没有一个可以检索到它。图像格式为:tiff 和 RAW。
使用javax.imageio
,我编写了以下程序,但它什么也没打印。这意味着没有reader
可用的
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]));
}
}
使用核心 java 库,是否有一种方法可以访问“拍摄日期”而不是“创建日期”或“修改日期”。进一步的data taken
信息是可用的,因为我可以从操作系统中的图像属性中看到
编辑:事实证明,readers
迭代器与它无关。iee size 0. 它只发生在 tiff 和 raw 图像上。适用于 jpeg