获取图像的日期

Jat*_*tin 8 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]));
            }
        }
Run Code Online (Sandbox Code Playgroud)

使用核心java库,是否有一种方法可以访问"采取日期"而不是"创建日期"或"修改日期".此外data taken,我可以从OS中的图像属性中看到该信息

编辑:事实证明,readers迭代器没有任何东西.iee size 0.它只发生在tiff和原始图像上.适用于jpeg

Jat*_*tin 10

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

更多信息可以在这里找到.