<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Do you drink java?



          像寫情書一樣coding

     

    [Image] 讀取數(shù)碼照片中的EXIF信息

    相信大家都有使用數(shù)碼相機拍照的經(jīng)歷,一張數(shù)碼照片可以包含的內(nèi)容遠遠超過了我們當前觀察到的景物,他可能包括攝影時的光圈、快門、ISO、日期時間等各種與當時攝影條件相關(guān)的訊息,相機品牌型號,色彩編碼,拍攝時錄制的聲音以及全球定位系統(tǒng)(GPS)等信息。這些信息都是存放在一個叫做Exif的文件里,然后把Exif文件放置在我們熟知的 JPEG/TIFF 文件的頭部,也就是說 EXIF 信息是鑲嵌在 JPEG/TIFF 圖像文件格式內(nèi)的一組拍攝參數(shù)。

    我在網(wǎng)上找到一個開源的開發(fā)工具包Metadata-Extractor,使用它可以像ACDSee等圖像軟件一樣讀取數(shù)碼照片的Exif信息。

    我寫了一個小Demo程序演示通過使用metadata-extractor-2.2.2讀取數(shù)碼照片的Exif信息并從Exif中讀取圖像縮略圖。
    import?java.io.*;
    import?java.nio.*;
    import?java.nio.channels.*;
    import?java.util.*;

    import?com.drew.imaging.jpeg.*;
    import?com.drew.metadata.*;
    import?com.drew.metadata.exif.*;


    ?
    public?class?ExifExtractor?{
    ??
    public?ExifExtractor()?{
    ??}


    ??
    public?static?void?main(String[]?args)?{
    ????
    try?{
    ??????Metadata?metadata?
    =?JpegMetadataReader.readMetadata(new?File("o_P4140147.JPG.jpg"));

    ??????Iterator?directories?
    =?metadata.getDirectoryIterator();
    ??????
    while?(directories.hasNext())?{
    ????????Directory?directory?
    =?(Directory)?directories.next();

    ????????Iterator?tags?
    =?directory.getTagIterator();
    ????????
    while?(tags.hasNext())?{
    ??????????Tag?tag?
    =?(Tag)?tags.next();

    ??????????
    //?modify?Exif
    //??????????if?(tag.getTagName().equalsIgnoreCase("User?Comment"))?{
    //??????????????????????Directory?exifDirectory?=?metadata.getDirectory(ExifDirectory.class);
    //??????????????????????exifDirectory.setString(tag.getTagType(),?"LeonChen");
    //??????????}

    ??????????
    //?read?thumbnail
    ??????????if?(tag.getTagName().equalsIgnoreCase("Thumbnail?Data"))?{
    ????????????Directory?exifDirectory?
    =?metadata.getDirectory(ExifDirectory.class);

    ????????????
    byte[]?dataBuffer?=?exifDirectory.getByteArray(tag.getTagType());
    ????????????FileChannel?channel?
    =?new?RandomAccessFile(new?File("thumbnail.jpg"),
    ????????????????
    "rw").getChannel();
    ????????????MappedByteBuffer?fileBuffer?
    =?channel.map(FileChannel.MapMode.
    ????????????????READ_WRITE,?
    0,?dataBuffer.length);
    ????????????fileBuffer.put(dataBuffer);
    ????????????fileBuffer.force();
    ????????????channel.close();
    ??????????}


    ??????????
    //?print?exif
    ??????????System.out.println(tag);
    ????????}

    ??????}

    ????}

    ????
    catch?(FileNotFoundException?ex)?{
    ??????ex.printStackTrace();
    ????}

    ????
    catch?(IOException?ex)?{
    ??????ex.printStackTrace();
    ????}

    ????
    catch?(MetadataException?ex)?{
    ??????ex.printStackTrace();
    ????}

    ????
    catch?(JpegProcessingException?ex)?{
    ??????ex.printStackTrace();
    ????}

    ??}

    }


    我在上面的測試程序里注釋了一段代碼,他們可以在內(nèi)存中修改Exif中某一節(jié)點的信息,但是我不知道怎樣才能將修改后的Exif信息保存到文件,如果你知道方法,請給我留言。

    測試圖片下載地址:
    http://www.tkk7.com/images/blogjava_net/leon/2174/o_P4140147.JPG

    EXIF參考:
    http://www.exif.org

    posted on 2005-11-29 17:04 leon 閱讀(2595) 評論(5)  編輯  收藏 所屬分類: OpenSource

    評論

    # re: [Image]讀取數(shù)碼照片中的Exif信息 2005-11-30 13:19 elex

    如果能Exif中的東西,是不是就意味著光圈和快門甚至相機品牌的數(shù)據(jù)都有可能更改?那EXIF還有什么意義。???
    5~~~~~~~~~~~~~  回復  更多評論   

    # re: [Image]讀取數(shù)碼照片中的Exif信息 2005-11-30 13:28 leon

    我現(xiàn)在的用途是在程序里對一組底動態(tài)范圍圖像進行合成,調(diào)節(jié)圖像的曝光值等,把調(diào)節(jié)后的圖像重新編碼保存,這時修改Exif信息,重新設置曝光值等就有意義。

    或者你看在PS上處理過的照片,Exif里都會留下PS的痕跡。。。

    Metadata-Extractor以后的版本可能會支持,就是不知道要等到猴年馬月。。。

    Future plans
    Support for:
    ......
    Writing metadata into media files
      回復  更多評論   

    # re: [Image]讀取數(shù)碼照片中的Exif信息 2006-01-24 17:43 網(wǎng)者天下

    呵呵,我也在看這方面的東西,好象保存要比讀取難得多了  回復  更多評論   

    # re: [Image]讀取數(shù)碼照片中的Exif信息 2006-01-24 20:50 leon

    我想也不會太難,研究一下Exif格式然后自己向里面寫。
    只是不想這上面畫太多功夫,覺得不值得,想偷懶找些第三方的庫。  回復  更多評論   

    # re: [Image] 讀取數(shù)碼照片中的EXIF信息 2007-03-29 15:30 游客

    好東西,我一直在找這個。  回復  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     

    導航

    統(tǒng)計

    公告

    DSC_0106.jpg
    本博客已經(jīng)搬家到CSDN
    http://blog.csdn.net/chenweionline




    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    About Technology

    My Favorite Website

    搜索

    積分與排名

    最新評論

    • 1.?re: 胃痙攣
    • 兄弟們你們都做胃鏡了嗎開的啥藥?有什么養(yǎng)胃秘方啊?請賜教啊!
    • --我也進來了
    • 2.?re: 胃痙攣
    • @痛啊
      我感覺比生孩子還疼,生孩子還能有意識呢!這種疼還叫不出來連說話的力氣都沒了
    • --我也進來了
    • 3.?re: 胃痙攣
    • 評論內(nèi)容較長,點擊標題查看
    • --我也進來了
    • 4.?re: 胃痙攣
    • 我都周期性的發(fā)作,算來有4年了 。每年最少一次,一次最少2天。吃了好多藥就差沒去做胃鏡了。 剛剛發(fā)作就隨便煮了點姜湯喝下就好了些,不知道還會不會發(fā)作了。
    • --許家洛
    • 5.?re: 胃痙攣
    • 我昨晚也疼的要死。。上次疼的直接120送醫(yī)院了,一上120我竟然就不疼了,醫(yī)院里掉了瓶鹽水就放回家了。這次正好國外旅游中,幾乎疼了一整晚,整個在床上翻滾狀態(tài)了。今天不疼了,就是整個人難受。。。求助阿
    • --胃疼
    • 6.?re: [Swing]在 JFileChooser 中進行文件驗證的小技巧
    • 輸入*還是會有問題
    • --ngh
    • 7.?re: 胃痙攣[未登錄]
    • 昨晚一夜的身不如死的感覺,胃痙攣兄不要來了吧 ,求你了
    • --李飛
    • 8.?re: 胃痙攣
    • 評論內(nèi)容較長,點擊標題查看
    • --daidai
    • 9.?re: 胃痙攣
    • 評論內(nèi)容較長,點擊標題查看
    • --痛啊
    • 10.?re: 胃痙攣
    • 媽啊 痛的快死了~!第一次感覺過這樣的痛啊~!和女的生孩子有的一比了吧~!哭哭哭~!
    • --痛啊

    閱讀排行榜

    主站蜘蛛池模板: 久久亚洲最大成人网4438| 国产成人综合久久精品免费 | 精品国产污污免费网站| 亚洲国产成人久久精品99| 爱情岛论坛亚洲品质自拍视频网站 | 亚洲情XO亚洲色XO无码| 中国性猛交xxxxx免费看| 亚洲色成人中文字幕网站| 西西人体免费视频| 亚洲另类激情综合偷自拍图| 中国一级特黄的片子免费 | 亚洲免费在线观看视频| 国产真人无码作爱免费视频| 久久久国产亚洲精品| 无码精品A∨在线观看免费 | 岛国大片免费在线观看| 亚洲熟妇av午夜无码不卡| 国产精品二区三区免费播放心| 精品久久久久亚洲| 日韩一卡2卡3卡4卡新区亚洲 | 日本成人免费在线| 日韩在线观看免费完整版视频| 亚洲偷自拍拍综合网| 一区二区三区观看免费中文视频在线播放| 亚洲av中文无码乱人伦在线咪咕| 222www免费视频| 亚洲国产欧美国产综合一区| 亚洲男女内射在线播放| 久久成人a毛片免费观看网站| 亚洲国产精品综合福利专区| 永久黄网站色视频免费| 成av免费大片黄在线观看| 亚洲人成在线播放网站岛国| 无码一区二区三区免费视频 | 18禁免费无码无遮挡不卡网站| 亚洲日本一线产区和二线| 在线观看国产区亚洲一区成人 | 中文亚洲AV片在线观看不卡 | 88xx成人永久免费观看| 亚洲日韩一中文字暮| 亚洲五月综合缴情在线观看|