<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] 讀取數碼照片中的EXIF信息

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

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

    我寫了一個小Demo程序演示通過使用metadata-extractor-2.2.2讀取數碼照片的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();
    ????}

    ??}

    }


    我在上面的測試程序里注釋了一段代碼,他們可以在內存中修改Exif中某一節點的信息,但是我不知道怎樣才能將修改后的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 閱讀(2587) 評論(5)  編輯  收藏 所屬分類: OpenSource

    評論

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

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

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

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

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

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

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

    # re: [Image]讀取數碼照片中的Exif信息 2006-01-24 17:43 網者天下

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

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

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

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

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


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


    網站導航:
     

    導航

    統計

    公告

    DSC_0106.jpg
    本博客已經搬家到CSDN
    http://blog.csdn.net/chenweionline




    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    About Technology

    My Favorite Website

    搜索

    積分與排名

    最新評論

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

    閱讀排行榜

    主站蜘蛛池模板: 国产免费久久精品丫丫| 男女男精品网站免费观看| 亚洲午夜免费视频| 亚洲精品乱码久久久久久按摩| 国产亚洲精品美女| 免费在线观看亚洲| 日本免费精品一区二区三区| www亚洲精品少妇裸乳一区二区| 美女视频黄频a免费大全视频| 免费在线观看视频a| 全部一级一级毛片免费看| 亚洲一级片内射网站在线观看| 国产成人高清精品免费观看| 亚洲av综合色区| 曰批全过程免费视频播放网站| 国产成+人+综合+亚洲专| 永久在线毛片免费观看| 深夜福利在线视频免费| 亚洲人成亚洲人成在线观看| 免费人成在线观看网站品爱网| 亚洲影视自拍揄拍愉拍| 国产又黄又爽又刺激的免费网址| 人妖系列免费网站观看| 亚洲av无码专区国产乱码在线观看| 最近中文字幕mv免费高清视频8| 久久精品国产亚洲αv忘忧草| 国产成人精品123区免费视频| 国产99久久久国产精免费 | 国产成人免费ā片在线观看老同学 | 免费在线观看a级毛片| 在线观看免费黄网站| 亚洲女人初试黑人巨高清| 精品国产麻豆免费网站| 美女无遮挡拍拍拍免费视频| 亚洲成人免费电影| 又爽又高潮的BB视频免费看| 精品免费tv久久久久久久| 亚洲色大成网站www永久男同| 国产亚洲自拍一区| 可以免费看黄视频的网站| 色哟哟国产精品免费观看|