国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

讀取數碼照片中的Exif信息

2019-11-18 15:26:08
字體:
來源:轉載
供稿:網友
 好久沒有來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.                
  56.                 
  57.             }else{
  58.                 brand = "";
  59.             }
  60.         } catch(Exception e){
  61.             System.out.println(e);
  62.         }finally{
  63.             return brand;
  64.         }
  65.     }
  66.     
  67.     public static void main(String[] args) {
  68.         ExifInfoWrapper e = ExifInfoWrapper.getInstance("path");
  69.         System.out.println(e.getPhotoCreatTime());
  70.         System.out.println(e.showCrameBrand());
  71.     }
  72. }



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永靖县| 郸城县| 高邮市| 若尔盖县| 长汀县| 彰武县| 出国| 凤庆县| 武邑县| 湟中县| 通渭县| 海淀区| 德化县| 宣城市| 芜湖县| 达拉特旗| 化德县| 铜川市| 大足县| 黄山市| 合川市| 雷山县| 杭锦后旗| 海南省| 达尔| 隆化县| 舞阳县| 天长市| 吉安市| 绥中县| 宿迁市| 古交市| 古浪县| 洱源县| 芒康县| 长宁区| 谢通门县| 游戏| 姜堰市| 八宿县| 甘孜县|