中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Java抽取照片的元數(shù)據(jù)信息

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

首先簡單看看什么是元數(shù)據(jù)(Metadata)。元數(shù)據(jù)是數(shù)據(jù)的數(shù)據(jù)或者叫做用來描述數(shù)據(jù)的數(shù)據(jù)。這句解釋也許很抽象,我們看個他的用途。我們可以把元數(shù)據(jù)簡單的理解成,最小的數(shù)據(jù)單位。元數(shù)據(jù)可以為數(shù)據(jù)說明其元素或?qū)傩曰蚱浣Y(jié)構(gòu)以及相關(guān)數(shù)據(jù)。

最廣泛的其中一個應(yīng)用就是每張相片中都包含了一個Exif信息,它就是一種用來描述數(shù)碼圖片的元數(shù)據(jù)。EXIF是exchangeable Image File的縮寫,這是一種專門為數(shù)碼相機(jī)照片設(shè)定的格式。這種格式可以用來記錄數(shù)字照片的屬性信息,例如相機(jī)的品牌及型號、相片的拍攝時間、拍攝時所設(shè)置 的光圈大小、快門速度、ISO等等信息。除此之外它還能夠記錄拍攝數(shù)據(jù),以及照片格式化方式。

根據(jù)Exif2.1標(biāo)準(zhǔn),元數(shù)據(jù)信息包含:

Image Description 圖像描述、來源. 指生成圖像的工具
Artist 作者 有些相機(jī)可以輸入使用者的名字
Make 生產(chǎn)者 指產(chǎn)品生產(chǎn)廠家
Model 型號 指設(shè)備型號
Orientation方向 有的相機(jī)支持,有的不支持
XResolution/YResolution X/Y方向分辨率 本欄目已有專門條目解釋此問題。
ResolutionUnit分辨率單位 一般為PPI
Software軟件 顯示固件Firmware版本
DateTime日期和時間
YCbCrPositioning 色相定位
ExifOffsetExif信息位置,定義Exif在信息在文件中的寫入,有些軟件不顯示。
ExposureTime 曝光時間 即快門速度
FNumber光圈系數(shù)
ExposureProgram曝光程序 指程序式自動曝光的設(shè)置,各相機(jī)不同,可能是Sutter Priority(快門優(yōu)先)、Aperture Priority(快門優(yōu)先)等等。
ISO speed ratings感光度
ExifVersionExif版本
DateTimeOriginal創(chuàng)建時間
DateTimeDigitized數(shù)字化時間
ComponentsConfiguration圖像構(gòu)造(多指色彩組合方案)
CompressedBitsPerPixel(BPP)壓縮時每像素色彩位 指壓縮程度
ExposureBiasValue曝光補(bǔ)償。
MaxApertureValue最大光圈
MeteringMode測光方式, 平均式測光、中央重點(diǎn)測光、點(diǎn)測光等。
Lightsource光源 指白平衡設(shè)置
Flash是否使用閃光燈。
FocalLength焦距,一般顯示鏡頭物理焦距,有些軟件可以定義一個系數(shù),從而顯示相當(dāng)于35mm相機(jī)的焦距 MakerNote(User Comment)作者標(biāo)記、說明、記錄
FlashPixVersionFlashPix版本 (個別機(jī)型支持)
ColorSpace色域、色彩空間
ExifImageWidth(Pixel X Dimension)圖像寬度 指橫向像素?cái)?shù)
ExifImageLength(Pixel Y Dimension)圖像高度 指縱向像素?cái)?shù)
Interoperability IFD通用性擴(kuò)展項(xiàng)定義指針 和TIFF文件相關(guān),具體含義不詳
FileSource源文件 Compression壓縮比。

元數(shù)據(jù)最大的好處是,它使信息的描述和分類可以實(shí)現(xiàn)格式化,從而為機(jī)器處理創(chuàng)造了可能。那我們?nèi)绾文玫竭@些信息呢?這里介紹Drew Noakes寫的metadata-extractor。目前最新的版本是V2.5.0 RC2。我發(fā)現(xiàn)這個版本與之前的V2.3.1還是做了一些更改,包括API的實(shí)現(xiàn)。關(guān)于V2.3.1版本的元數(shù)據(jù)提取可以參考我之前寫的文章:Java讀取圖片EXIF信息。

接下來看看如何使用Metadata-extractor類庫來讀取圖片中的元數(shù)據(jù)。這樣做的一個應(yīng)用就是你可以給你的圖片按照某種格式分類的,用過Google picasa中就有這種功能。

首先需要導(dǎo)入metadata-extractor-2.5.0-RC2.jar,如果你是直接在console編譯的話,那么編譯語 句:javac -d. -classpath metadata-extractor-2.5.0-RC2.jar MetaDataReader.java 下面是MetaDataReader.java的源碼:

import java.io.File;
import java.util.Collection;
import java.util.Iterator;

import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;

import com.drew.metadata.exif.ExifIFD0Directory;

/**
 * 測試用于讀取圖片的EXIF信息
 * @author Leyond
 * @Blog   codecho.com
 */
public class MetaDataReader {
     public static void main(String[] args) throws Exception {
         File jpegFile = new File("src/Nikon E990.jpg");
         Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);
         Directory exif = metadata.getDirectory(ExifIFD0Directory.class);
         Collection<Tag> tags = exif.getTags();
         Iterator<Tag> iter = tags.iterator();
         //逐個遍歷每個Tag
         while(iter.hasNext())
         {
          Tag tag = (Tag)iter.next();
          System.out.println(tag);
         }
         //檢查是否Tag中包含了圖片屬性-摘要中的作者 (xp)
         if(exif.containsTag(ExifIFD0Directory.TAG_WIN_AUTHOR)){
             System.out.println("Pic author is "+exif.getDescription(ExifIFD0Directory.TAG_WIN_AUTHOR));
         }
       //檢查是否Tag中包含了圖片屬性-摘要中的標(biāo)題 (xp)
         if(exif.containsTag(ExifIFD0Directory.TAG_WIN_TITLE)){
             System.out.println("Pic title is "+exif.getDescription(ExifIFD0Directory.TAG_WIN_TITLE));
           }
       //檢查是否Tag中包含了圖片屬性-摘要中的主題 (xp)
           if(exif.containsTag(ExifIFD0Directory.TAG_WIN_SUBJECT )){
         System.out.println("Pic subject is "+exif.getDescription(ExifIFD0Directory.TAG_WIN_SUBJECT ));
         }
     }
}

執(zhí)行結(jié)果:
[Exif IFD0] Make – NIKON
[Exif IFD0] Model – E990
[Exif IFD0] Orientation – Top, left side (Horizontal / normal)
[Exif IFD0] X Resolution – 300 dots per inch
[Exif IFD0] Y Resolution – 300 dots per inch
[Exif IFD0] Resolution Unit – Inch
[Exif IFD0] Software – E990v1.1
[Exif IFD0] Date/Time – 2000:12:30 10:18:16
[Exif IFD0] YCbCr Positioning – Datum point
[Exif IFD0] Windows XP Title – Codecho.com
[Exif IFD0] Windows XP Author – Leyond
[Exif IFD0] Windows XP Subject – Test
Pic author is Leyond
Pic title is Codecho.com
Pic subject is Test

其中后面三項(xiàng)分別是圖片屬性-摘要中的標(biāo)題、主題、作者信息。當(dāng)然你還可以讀取關(guān)鍵字(TAG_WIN_KEYWORDS)等信息。具體參考: Javadoc 。

標(biāo)簽: Google

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:java 同步方法的使用 防止多線程同時執(zhí)行方法

下一篇:java讀寫文件操作工具類