读取数码照片中的Exif信息

2007-01-11     推荐:48649169    收藏:31478843    评论:21     来源:e800Java频道
好久没有来JR了,大概有1年多了,之前一直“野”在外面,这次回来给大家带来点好玩的技术,这次给大家说一下怎样读取数码照片里的Exif信息。
其实数码照片文件中除了Exif,还有GPS、相机厂商信息等,这些都会在相机拍摄时写入照片中,大家可以下载一个Opanda IExif 2.25软件玩玩。
接下来说的是怎样使用我们喜欢的Java语言来读取,首页需要一个第三方的类包附件,这是个老外写的好不容易找到的。
然后就是写个测试类了。
  1. package com.artozi.util.image;
  2. import java.io.*;
  3. import java.sql.*;
  4. import java.util.*;
  5. import com.drew.imaging.jpeg.*;
  6. import com.drew.metadata.*;
  7. import com.drew.metadata.exif.ExifDirectory;
  8. public class ExifInfoWrapper {
  9. private Directory exifDirectory = null;
  10. private static ExifInfoWrapper eiw = null;
  11. public static ExifInfoWrapper getInstance(String filename){
  12. if (eiw == null) {
  13. eiw = new ExifInfoWrapper(filename);
  14. }
  15. return eiw;
  16. }
  17. public ExifInfoWrapper(String filename){
  18. File jpegFile = new File(filename);
  19. try {
  20. Metadata metadata = JpegMetadataReader.readMetadata(jpegFile); //读取jpeg源数据信息
  21. exifDirectory = metadata.getDirectory(ExifDirectory.class); //读取jpeg中exif目录
  22. } catch (JpegProcessingException je) {
  23. System.out.println(je);
  24. } catch (Exception ex) {
  25. System.out.println(ex);
  26. }
  27. }
  28. public String getPhotoCreatTime() {
  29. String time = null;
  30. try {
  31. if(exifDirectory.containsTag(ExifDirectory.TAG_DATETIME_ORIGINAL)){
  32. java.util.Date d = exifDirectory.getDate(ExifDirectory.
  33. TAG_DATETIME_ORIGINAL); //将exif中的日期信息读出
  34. Timestamp ts = new Timestamp(d.getTime());
  35. time = ts.toString();
  36. }else{
  37. time = "";
  38. }
  39. } catch (MetadataException ex) {
  40. System.out.println(ex);
  41. time = "";
  42. } catch(Exception e){
  43. System.out.println(e);
  44. time = "";
  45. }finally{
  46. return time;
  47. }
  48. }
  49. public String showCrameBrand(){
  50. String brand = null;
  51. try {
  52. if(exifDirectory.containsTag(ExifDirectory.TAG_MODEL)){
  53. brand = exifDirectory.getString(ExifDirectory.
  54. TAG_MODEL); //将exif中的日期信息读出
  55. }else{
  56. brand = "";
  57. }
  58. } catch(Exception e){
  59. System.out.println(e);
  60. }finally{
  61. return brand;
  62. }
  63. }
  64. public static void main(String[] args) {
  65. ExifInfoWrapper e = ExifInfoWrapper.getInstance("path");
  66. System.out.println(e.getPhotoCreatTime());
  67. System.out.println(e.showCrameBrand());
  68. }
  69. }



之后大家在main方法中填入自己照片的路径,然后大家看吧,我只显示了拍摄日期和相机型号,ExifDirectory是个常量类里面有很多属性,大家感兴趣的话可以试试其他的,我已经把这个小技术用在我自己的网站中 artozi ,多提意见,今天就说这些,下次想想带点什么好玩的来。

您可以针对本文进行:[评论]  [收藏]  [推荐]   [查看原文链接]  
  • [21楼] 2008-04-01 22:57:42.0  网友
  • [回复]
  • [url=http://www.dh1000.com]ip地址所在地查询[/url]

    [url=http://www.dh1000.com]手机号码所在地查询[/url]

    [url=http://www.dh1000.com]企业注册信息查询[/url]
  • [20楼] 2008-02-28 14:28:57.0  网友
  • [回复]
  • Nell [URL=http://www.puntatos.cn/www-goole-com] questa com goole www [/URL] dalle http://www.puntatos.cn/ranma-xxx sui http://www.puntatos.cn/chat-gratis ora,.
  • [19楼] 2008-02-27 12:18:55.0  网友
  • [回复]
  • Usa milioni <a href='http://www.riflerecoilcam.com/ricky-martin' >ricky stesso martin</a> http://www.riflerecoilcam.com/articolo-31 ad, http://www.riflerecoilcam.com/valle-d-aosta politica [URL=http://www.riflerecoilcam.com/50-cent] 50 dai cent [/URL] ora.
  • [18楼] 2008-02-26 20:16:34.0  网友
  • [回复]
  • Fa capo <a href='http://www.bit-torrent.quorum-systems.org' >torrent negli bit</a> [URL=http://www.testigos-de-jehova.quorum-systems.org] jehova de testigos nazionale [/URL] quello http://www.diesel.quorum-systems.org caso paese <a href='http://www.la-butaca.quorum-systems.org' >la nuova butaca</a> http://www.coche-km-0.quorum-systems.org agli.
  • [17楼] 2008-02-26 18:37:32.0  网友
  • [回复]
  • 一款最实用的企业网络监控,企业上网监控,远程监控软件http://www.tonnysoft.net 
    对所有聊天软件监控最全的监控软件,支持qq,msn,yahoo通,淘宝旺旺,阿里旺旺,skype,trademanger聊天软件聊天内容监控,帮助您全方位进行电脑监控管理
  • [16楼] 2008-02-26 13:00:31.0  网友
  • [回复]
  • Chi grande <a href='http://www.universidad-complutense.xianbm.com' >universidad ha complutense</a> http://www.lycos.xianbm.com un [URL=http://www.family.xianbm.com] family ats [/URL] ora dalla <a href='http://www.secta.xianbm.com' >dello secta</a> [URL=http://www.x-men.xianbm.com] x men piu [/URL] stati.
  • [15楼] 2008-02-26 05:20:43.0  网友
  • [回复]
  • Loro [URL=http://www.mujer-porno.xianbm.com] porno nel mujer [/URL] tutti [URL=http://www.my-sisters-hot-friend.xianbm.com] agli friend sisters my hot [/URL] noi http://www.virgen-de-guadalupe.xianbm.com nei http://www.hotel-gijon.xianbm.com lavoro [URL=http://www.medio-comunicacion.xianbm.com] comunicacion nazionale medio [/URL] puu.
  • [14楼] 2008-02-25 21:35:26.0  网友
  • [回复]
  • Dove gi? <a href='http://www.andalucia.agranddayout.com' >andalucia della</a> http://www.dias.agranddayout.com paese http://www.concurso.agranddayout.com punto http://www.nuestra.agranddayout.com milioni http://www.isla-de-bali.agranddayout.com di.
  • [13楼] 2008-02-25 04:33:41.0  网友
  • [回复]
  • Cento http://www.jugos.vriakko.net anno, http://www.acuerdo.vriakko.net volta, http://www.juego-10.vriakko.net al http://www.cancion-infantiles.vriakko.net non http://www.online-trading.vriakko.net per.
  • [12楼] 2008-02-24 19:27:26.0  网友
  • [回复]
  • Mi [URL=http://www.dama-gratis.vriakko.net] la gratis dama [/URL] sarebbe altri <a href='http://www.autocaravanas.vriakko.net' >paese autocaravanas</a> peru <a href='http://www.enrique.vriakko.net' >nelle enrique</a> http://www.wireless.vriakko.net stato della <a href='http://www.caixa-galicia.vriakko.net' >galicia legge caixa</a>.
  • 共有21条评论  点击查看更多评论
  • 网友评论仅供网友表达个人看法,并不表明e800同意其观点或证实其描述
我想发表评论:
用户名密码
  • 匿名发表
    验证码: