获取图像的日期

时间:2012-11-26 06:13:41

标签: java image

我想找到图像的“采取日期”而不是“修改日期”或“创建日期”。虽然我在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迭代器与它没有任何关系。即大小0.这只发生在tiff和原始图像上。适用于jpeg

1 个答案:

答案 0 :(得分:10)

我找不到使用java核心库的任何解决方案。找到了一个名为metadata-extractor的库来完成这项工作。

可以找到更多信息here.