java - 从图像Java代码中获取GPS数据

标签 java image metadata jpeg

我想使用 Java 代码从本地系统中的图像文件中获取元数据

在附图中,您可以看到我想从 Java 代码中提取的所需数据。

enter image description here

我写了下面的代码,但似乎没有提取“详细信息”选项卡中提到的数据。以下代码的输出是,这不是我要找的。

Started .. 
Format name: javax_imageio_jpeg_image_1.0
Format name: javax_imageio_1.0

请给我你的想法。谢谢

try {
            ImageInputStream inStream = ImageIO.createImageInputStream(new File("D:\\codeTest\\arun.jpg"));
            Iterator<ImageReader> imgItr = ImageIO.getImageReaders(inStream);

            while (imgItr.hasNext()) {
                ImageReader reader = imgItr.next();
                reader.setInput(inStream, true);
                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 ] );
                }  
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

最佳答案

使用 Java Core API 没有简单的方法来做到这一点。您必须解析图像的元数据树,并解释正确的 EXIF 标签。相反,您可以从具有 EXIF 解析功能的现有库中获取所需的代码,并在您的库中使用它。例如,我使用了 Imagejavaxt ,它提供了一种非常有用的方法来从图像中提取 GPS 元数据。很简单:

javaxt.io.Image image = new javaxt.io.Image("D:\\codeTest\\arun.jpg");
double[] gps = image.getGPSCoordinate();

此外,javaxt.io.Image 没有外部依赖项,因此如果您不想添加对整个库的依赖项,您可以只使用该特定类。

关于java - 从图像Java代码中获取GPS数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12114837/

相关文章:

html - 如何使盒子内的图像响应式 CSS

java - 创建 Dicom 图像

sql - 查找 View 中每一列的源表

iOS:如何从磁盘上的照片文件中提取缩略图和元数据

java - 如何检查 URL 是否包含 botw.org 上的链接?

java - 构造函数使用这个和 super Java

java - 如何在设备上运行 Google Glass GDK 示例?

java - 反弦、余弦和正切代码

sql-server - SQL Server varbinary(max) 到 Image 数据类型

sql-server - 获取从存储过程返回的列名称/类型