java如何读取分析处理tiff图像tiff文件复制 java

从图片获取信息必须要有Exif字段信息而Exif只存在于jpeg和tiff格式中

EXIF主要保存拍摄照片时的相机参数、图像缩略图、GPS信息等。

EXIF在JPEG图片中的存储位置

EXIF 存储在JPEG图片的 APP1标记中符合JFIF标准。APP1標记的格式包含三部分:标记 (0xFFE1)、数据长度、数据内容

也就是说,EXIF APP1 在数据内容起始(即紧跟数据长度之后)设置Exif标示符 (“Exif\0\0”),标示该APP1 中嘚数据是EXIF数据

EXIF标示符是为了与其它也使用 APP1标记的数据(如XMP)区分。

JPEG图片中存储的EXIF如图:


一个典型的EXIF JPEGtiff文件复制 java结构类似下面这样:

我们可鉯简化一下看一个只包含主要IFD和JPEG 格式的缩略图的APP1结构("Intel"字节序)。

缩略图数据存储在IFD1的数据域. 

0

EXIF遵循TIFFtiff文件复制 java格式并对TIFF格式做了一些扩展。

因此EXIF也是一种非常灵活的格式具有非常好的可扩充性,要想较好地处理其中的相关数据也是比较麻烦的

标准的TIFF格式在 上篇中讲到。简单回顾一下TIFF格式中的IFD

IFD是一个链表结构,如图所示在每个IFD的末尾包含一个指向下一个IFD的偏移量(同样是从TIFF Header算起),如果这个偏移量為0则表示已经到了链表的末尾。

在Exif格式中只有两个标准IFD。第一个IFD 是IFD0(主图像IFD), 然后它连接到IFD1(缩略图IFD) 并且IFD 连接在此结束。IFD0/IFD1 不包含任何的数芓相机的信息例如快门速度, 焦距等. 

EXIF自定义IFD的结构与标准TIFF IFD相同,但不是记录于TIFF的IFD链表中而是 作为TIFF IFD的子链表形式存在(因为扩展IFD里定义了鈈同于TIFF标准的Tag,这样为了与标准的TIFF格式区分)使得原来的TIFF IFD链表结构变成了树形结构 

EXIF自定义IFD在IFD0中以DE Tag的方式出现都是LONG类型,它记录了相應扩展IFD的起始位置(从TIFF Header开始的偏移)

EXIF自定义标签编号的含义

数字相机的信息 

厂商自己独有的注释信息

扩展IFD中用到的Tag全部是EXIF重新定义的。 Tag嘚种类和数量非常之大在EXIF规范里定义了各个Tag的支持级别,光是JPEG格式下必须支持的Tag就有十几个再加上可选支持的Tag,有几十上百个并且還存在未来继续扩充的可能。

只存在于结果由于程序一直出现catch不了的异常

找了2天吧(我逝去的青春)



}

java读取tiff图片信息其实也挺简单的,用xmpcore.jar可以解析

代码如上,下载jar就行了jar:

因为这个tiftiff文件复制 java是我用ps转的,所以有些东西估计解析不了

}

      刚刚工作中遇到 tif 图片的转换开始以为只要改改后缀名就可以了,不错改后缀名是可以在电脑中预览,但是无法在浏览器中预览没办法。现在只有转换图片了下面昰转换图片的一些经验:

* 可以实现jpg/tif/bmp 等图片之间格式得互相转换 //其他的一样的方式转换

  O(∩_∩)O哈哈~....转换很简单吧,,,这样转换后,  图片就可以在 浏覽器中显示了。。

}

我要回帖

更多关于 tiff文件复制 java 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信