`
baoxiaofei
  • 浏览: 32928 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

今天终于算是大部分解决这个TIFF图像的Metadata了!开心一下!

阅读更多
上次说到关于TIFF格式图像的Metadata实在头文件里边,一般是按照XML格式存储的,标准的TIFF格式文件都会跟一个.tfw的文件。这个文件可以用一般的文件编辑器打开,例如写字本、记事本、WORD之类的,在它里边存储的是6个double类型的数字,有了这些数字就可以正确地进行coordinate变换了。那要是没有这个文件怎么办?那就只能自己提取了,就像下面这样:(当然,还没有优化,提取出来的可能会相当多,且大多自己用不上)

//首先是得到输入的图像文件的Metadata:
File file = new File( "E:\\TIF_picture\\srtm_60_05\\srtm_60_05.tif");

ImageReader reader = getImageReaderBySuffix("tiff");

reader.setInput(ImageIO.createImageInputStream(file), true,false);

IIOMetadata metadata = reader.getImageMetadata(0);

//显示得到的这些TIFFFIELD:
String[] names = metadata.getMetadataFormatNames();
for (int i = 0; i < names.length; ++i) {

System.out.println();

System.out.println("METADATA FOR FORMAT: " + names[i]);

displayTree(metadata.getAsTree(names[i]), 0);

}


//显示TIFFFIELD的树状结构:

String name = node.getNodeName();

System.out.print("><" + name);

if (node.hasAttributes()) {

NamedNodeMap attrs = node.getAttributes();

for (int i = 0, ub = attrs.getLength(); i < ub; ++i) {

Node attr = attrs.item(i);

System.out.print(" " + attr.getNodeName() + "="+attr.getNodeValue());

}
}

if (node.hasChildNodes()) {
。。。。
}

在这儿不方便排版,谅解一下哈。。。

输出:(截取一部分就是了)
><TIFFField number=33550 name=ModelPixelScaleTag>
            ><TIFFDoubles>
                ><TIFFDouble value=8.333333333333334E-4/>
                ><TIFFDouble value=8.333333333333334E-4/>
                ><TIFFDouble value=0.0/>
            ></TIFFDoubles>
        ></TIFFField>
        ><TIFFField number=33922 name=ModelTiePointTag>
            ><TIFFDoubles>
                ><TIFFDouble value=0.0/>
                ><TIFFDouble value=0.0/>
                ><TIFFDouble value=0.0/>
                ><TIFFDouble value=115.0/>
                ><TIFFDouble value=40.0/>
                ><TIFFDouble value=0.0/>
            ></TIFFDoubles>
        ></TIFFField>

比对一下同学帮我用什么ARCGIS之类的软件提取到的:
            0.0008333333
            0.0000000000
            0.0000000000
           -0.0008333333
          115.0004166667
           39.9995833333

精度上好像没有那么高,够用了。而且,在oracle spatial里边实际使用的时候,也只用115和40就够了。

分享到:
评论

相关推荐

    解决Android Studio Gradle Metadata特别慢的问题

    "解决Android Studio Gradle Metadata特别慢的问题" Android Studio是Android应用程序开发的官方IDE,它提供了许多功能来帮助开发者快速构建和测试Android应用程序。然而,在使用Android Studio时,有时可能会遇到...

    metadata-extractor-2.8.1 jar包以及源码以及使用例子

    "metadata-extractor-2.8.1" 是一个Java库,专门用于从各种图像和音频文件中提取元数据。这个库是由Dave Coffin创建并维护的,它支持大量的文件格式,包括JPEG、TIFF、PNG、PDF等。元数据通常包含关于文件的详细信息...

    Flink无法获取Kafka Topic Metadata异常及解决.docx

    Flink 无法获取 Kafka Topic Metadata 异常及解决 一、问题现象 在使用 Kafka 0.11.0.1 和 Flink 1.4 进行实时计算时,Flink 无法获取 Kafka Topic Metadata,报以下异常:org.apache.kafka.common.errors....

    metadata-extractor-2.x资源jar包

    EXIF(Exchangeable Image File Format)是嵌入在JPEG、TIFF等图像文件中的一个信息块,包含了拍摄时间、相机设置、地理位置等大量信息。通过metadata-extractor,我们可以轻松地获取到这些信息,例如: ```java ...

    metadata-extractor-2.11.0源码及Jar包

    1. **metadata-extractor**: 这是一个开源Java库,由Drew Noakes开发,能够从多种文件类型(如JPEG、TIFF、PDF、PSD等)中提取元数据。元数据通常包括创建日期、相机型号、曝光时间、GPS坐标等信息,这些对于图像...

    metadata-extractor.jar

    这个库的目的是简化开发人员的工作,使他们能够轻松访问和解析图像的EXIF、GPS、XMP等信息。 EXIF(Exchangeable Image File Format)是嵌入在JPEG和其他图像文件中的元数据标准,记录了拍摄设备的参数,如曝光时间...

    java操作tiff

    这将读取第一个图像页,如果 TIFF 文件包含多页,你可以通过改变索引来访问其他页。 3. **写入 TIFF 图像**:同样,使用 `ImageWriter` 可以将图像数据写入 TIFF 文件。首先,创建一个 `ImageWriter` 实例,然后...

    Laravel开发-metadata

    在本文中,我们将深入探讨Laravel开发中的"metadata"概念,以及如何在实际项目中运用这一功能。"metadata"在编程领域通常指的是关于数据的数据,它提供了额外的信息,帮助我们更好地理解和处理数据。在Laravel框架中...

    SAP FRC接口调用calling RFC_METADATA_GET -- see log for details报错解决方案

    老的DLL库在获取接口实例时,会触发“RFC_METADATA_GET”,7700版本的SAP可能没有了这个函数。 解决的办法: 升级sapnco的SDK。附件是2022.07发布的SDK,直接替换即可使用。亲测.net4.0-4.8的版本均可正常使用。 ...

    metadata-extractor-2.3.1.jar

    metadata-extractor由David Cochrane开发,它支持读取多种格式的图像文件,尤其是JPEG,同时还可处理TIFF、PNG、GIF等其他常见格式。这个库的核心在于其能够解析多种不同的元数据标准,如EXIF、IPTC、XMP、Photoshop...

    DatabaseMetaData生成数据库DLL

    本篇文章将深入探讨如何利用`DatabaseMetaData`生成数据库的DLL(在关系型数据库中,DLL通常指的是数据定义语言,如SQL的CREATE TABLE等语句),以及这个过程中的关键知识点。 1. **什么是DatabaseMetaData?** `...

    metadata-extractor-master.zip

    "metadata-extractor-master.zip" 是一个包含 "metadata-extractor" 项目的源代码压缩包,这个项目主要用于从图像和文档中提取元数据。元数据是关于数据的数据,它提供了关于文件内容、创建者、时间戳、位置等信息。...

    kotlin-metadata,.zip

    "kotlin-metadata"库是Kotlin生态系统中的一个重要组成部分,它专门用于处理Kotlin编译器生成的元数据。元数据在编译过程中记录了关于源代码的各种信息,比如类型信息、注解、函数签名等,这对于反射和编译时代码...

    mediautil+metadata-extractor

    在IT领域,尤其是在图像处理和数字媒体管理中,"mediautil+metadata-extractor"是一个用于提取和查看EXIF(Exchangeable Image File Format)信息的工具。这个工具包含两个核心组件:`meduautil-1.0.jar`和`metadata...

    metadata-extractor-2.6.2-API文档-中文版.zip

    赠送jar包:metadata-extractor-2.6.2.jar; 赠送原API文档:metadata-extractor-2.6.2-javadoc.jar; 赠送源代码:metadata-extractor-2.6.2-sources.jar; 赠送Maven依赖信息文件:metadata-extractor-2.6.2.pom;...

    Myeclipse 下 workspace 的 .metadata 配置文件

    在 MyEclipse 开发环境中,`.metadata` 文件夹是一个至关重要的组成部分,它存储了工作空间(workspace)的所有配置信息。这个文件夹包含了MyEclipse 的各种设置、项目元数据、插件状态等,使得开发环境能够根据用户...

    针对Collecting package metadata (current-repodata.json)- faile的解决

    【环境配置】Collecting package metadata (current_repodata.json)_ failed的问题解决

    jquery.metadata.1.0_javascript_jquery_

    2. `jquery.metadata.js`、`jquery.metadata.pack.js`、`jquery.metadata.min.js`:这三个文件是jQuery Metadata的核心源码,分别代表原始未压缩版本、打包版本和压缩后的最小化版本。开发者可以根据项目需求选择...

    前端项目-reflect-metadata.zip

    Reflect Metadata API解决了这个问题,它允许我们在类、属性、方法等上添加自定义的数据,这些数据可以在运行时被查询和使用。 首先,我们需要理解元数据(Metadata)。元数据是在程序中附加的数据,它提供了关于...

    metadata-extractor-2.6.2-API文档-中英对照版.zip

    赠送jar包:metadata-extractor-2.6.2.jar; 赠送原API文档:metadata-extractor-2.6.2-javadoc.jar; 赠送源代码:metadata-extractor-2.6.2-sources.jar; 赠送Maven依赖信息文件:metadata-extractor-2.6.2.pom;...

Global site tag (gtag.js) - Google Analytics