日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java 提取照片的EXIF信息批量重命名

瀏覽:22日期:2022-08-13 18:09:02

手機或照機拍攝的照片名稱通常是”IMG_001.JPG”這種格式,這種文件名稱是無意義的。使用照片拍攝時間命名可以讓我們在多年以后查找照片時根據文件名就能快速篩選出某一時間段的照片。

原始照片或視頻是帶有EXIF信息的。這些信息是設備在拍攝時生成,記錄了照片的拍攝時間,設備信息,拍攝GPS位置等信息,在文件屬性中可以查看到:

Java 提取照片的EXIF信息批量重命名

圖片APP和網盤軟件中圖片時間線也是提取EXIF信息生成的。如果對照片進行處理,如美化操作,另存為時可能會丟失EXIF信息,或者EXIF信息被改寫,會導致識別信息不準。

我以前備份的照片,大多是原始文件名,現在我想根據拍攝日期批量重命名。

找了一圈,發現老牌看圖軟件ADSee帶有這個功能:

Java 提取照片的EXIF信息批量重命名

但是存在幾個問題:

不能排除已丟失EXIF的文件,這類的文件無法重命名 官方ADSee免費版下載安裝后,要注冊賬號才能使用

于是動動手,用JAVA代碼實現這個小功能。

提取EXIF信息使用的是開源項目 metadata extractor ,它支持市面上常見的媒體文件格式和設備:

Java 提取照片的EXIF信息批量重命名

metadata extractor 官網:https://drewnoakes.com/code/exif/

引入依賴:

<dependency> <groupId>com.drewnoakes</groupId> <artifactId>metadata-extractor</artifactId> <version>2.15.0</version></dependency>

官方讀取示例代碼:

Metadata metadata = ImageMetadataReader.readMetadata(file);for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) {System.out.format('[%s] - %s = %s n', directory.getName(), tag.getTagName(), tag.getDescription()); } if (directory.hasErrors()) {for (String error : directory.getErrors()) { System.err.format('ERROR: %s', error);} }}

以下是我使用示例代碼讀取一張圖片輸出的部分結果:

Java 提取照片的EXIF信息批量重命名

其中 Date/Time Original 就是我要取的攝像日期。

代碼如下:

/** * 如果是目錄則遞歸查找 * @param file 文件或目錄 */public static void recursion(File file) { if (file.isDirectory()) {// 目錄File[] fileList = file.listFiles();for (File f : fileList) { recursion(f);} } else {// 文件if (file.isFile()) { // 格式:2019:06:27 11:23:55 或 2019:07:13 19:07:42下午 String originDateTime = getOriginDateTime(file); if (null != originDateTime) {int lastDoc = file.getPath().lastIndexOf('.');String suffix = file.getPath().substring(lastDoc);String fileName = originDateTime.replace('下午', '').replaceAll(':', '-') + suffix;File newFile = new File(file.getParentFile(), fileName);if (newFile.exists()) { System.out.format('文件【%s】已存在 n', newFile.getPath());} else { System.out.format('重命名【%s】 -> 【%s】 n', file.getPath(), newFile.getPath()); file.renameTo(newFile);} } else {System.out.format('文件【%s】中未找到 Origin DateTime 信息 n', file.getPath()); }} }}/** * 提取拍攝日期 * @param file * @return */public static String getOriginDateTime(File file) { String originDateTime = null; try {Metadata metadata = ImageMetadataReader.readMetadata(file);for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) {if ('Date/Time Original'.equals(tag.getTagName())) {//System.out.format('[%s] - %s = %s n',//directory.getName(), tag.getTagName(), tag.getDescription()); originDateTime = tag.getDescription();} } if (directory.hasErrors()) {for (String error : directory.getErrors()) { System.err.format('ERROR: %s %s n', error, file.getPath());} }} } catch (Exception e) {e.printStackTrace(); } return originDateTime;}

Main方法測試:

public static void main(String[] args) throws ImageProcessingException, IOException { recursion(new File('圖片目錄'));}

執行結果:

Java 提取照片的EXIF信息批量重命名

可以根據自己需求重寫重命名方法。比如在拍攝日期相同時加上一個自增數。

以上就是Java 提取照片的EXIF信息批量重命名的詳細內容,更多關于Java 提取EXIF信息重命名的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美女尤物久久精品| 国产精品视频一区二区三区综合| 精品三级av| 日本视频中文字幕一区二区三区| 免费一级片91| 黄色在线一区| 激情综合网站| 久久中文视频| 亚洲精品国产偷自在线观看| 91亚洲人成网污www| 日本不卡视频一二三区| 亚洲三级av| 日韩免费精品| 综合色一区二区| 亚洲欧洲一区| 亚洲欧美网站| 女同性一区二区三区人了人一| 亚洲第一精品影视| 成人在线网站| 性一交一乱一区二区洋洋av| 久久久久免费av| 亚洲a在线视频| 免费久久精品视频| re久久精品视频| 91精品国产乱码久久久久久久| 亚洲三级欧美| 午夜电影亚洲| 欧美日韩在线精品一区二区三区激情综合 | 在线精品亚洲欧美日韩国产| 久久久水蜜桃av免费网站| 中文精品视频| 欧美欧美黄在线二区| 日韩国产一区二区三区| 日韩精品一区第一页| 欧美黄色一区二区| 国精品一区二区| 日韩精品乱码av一区二区| 狠狠久久伊人| 亚洲一区二区动漫| 免费在线欧美黄色| 成人在线免费观看91| 99综合视频| 久久av影视| 国产二区精品| 麻豆一区二区三| 欧美日韩四区| 国产精品videossex久久发布 | 婷婷成人综合| 日韩国产欧美在线视频| 精品美女久久| 亚洲精品成a人ⅴ香蕉片| 精品一区二区三区亚洲| 亚洲一区日韩在线| 精品三级在线观看视频| 久热精品在线| 国产一区二区三区四区| 黄色成人精品网站| 亚州国产精品| 国产 日韩 欧美一区| 日本va欧美va欧美va精品| 日韩在线不卡| 视频一区日韩精品| 四虎成人av| 影音先锋久久精品| 国产精品一区二区免费福利视频| 日韩在线第七页| 亚洲3区在线| 91精品国产调教在线观看 | 免费亚洲婷婷| 一区二区三区国产盗摄| 三级在线看中文字幕完整版| 亚洲精品护士| 久久久久久黄| 国产精品22p| 国产亚洲一级| 国产一区二区三区日韩精品| 石原莉奈在线亚洲二区| 日韩中文欧美在线| 成人一区而且| 婷婷丁香综合| 国产精品久久久久久久久久久久久久久| 日韩在线精品| 日韩黄色在线观看| 成人羞羞在线观看网站| 精品一区二区男人吃奶| 在线精品视频一区| 国产99在线| 国产精品99精品一区二区三区∴| 在线精品小视频| 精品精品国产三级a∨在线| 亚洲涩涩av| 亚洲午夜黄色| 国产亚洲电影| 婷婷综合社区| 国产精品久久久久久久免费观看| 亚洲综合中文| 国产精品亚洲一区二区三区在线观看| 国产精品美女午夜爽爽| 免费日韩av片| 欧美日韩免费看片| 理论片午夜视频在线观看| 欧美xxxx性| 免费亚洲婷婷| 国产精品久久久久77777丨| 欧美一区成人| 69堂免费精品视频在线播放| 中文不卡在线| 亚洲激情中文在线| 激情91久久| 在线一区免费观看| 欧美福利一区| 久久精品1区| 久久网站免费观看| 精品视频一区二区三区在线观看| 老色鬼精品视频在线观看播放| 国产欧美午夜| 亚洲专区视频| 亚洲在线成人| 国产精品日韩久久久| 日韩欧美字幕| 天堂√8在线中文| 久久精品1区| 日本久久黄色| 精品免费视频| 国产黄大片在线观看| 成人午夜毛片| 麻豆一区二区在线| 国产黄色精品| 国语精品一区| 免费一区二区三区在线视频| 久久成人高清| 国产精品tv| 国产理论在线| 好看不卡的中文字幕| 激情久久久久久久| 精品在线99| 亚洲综合精品四区| 日韩电影免费网站| 激情久久久久久| 日韩一区二区久久| 视频一区在线视频| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久精品亚洲一区二区| 精品美女久久| 久久九九精品| 影音先锋国产精品| 香蕉精品999视频一区二区| 日韩高清一级| 欧美精品导航| 卡一卡二国产精品| 免费在线播放第一区高清av| 成人国产精品久久| 高清av不卡| 99视频精品免费观看| 亚洲a成人v| 久久精品国产久精国产爱| 久久久久久久久丰满| 久久大逼视频| 国产精品天天看天天狠| 91亚洲国产高清| 国产91一区| 日韩久久99| 啪啪亚洲精品| 欧美aa一级| 免费人成在线不卡| 国产精品香蕉| 国模 一区 二区 三区| 欧美韩日一区| 国产精品美女久久久浪潮软件| 久久国产三级精品| 黑人精品一区| 日韩欧美三区| 午夜精品网站| 高清av一区| 日韩在线观看中文字幕| 欧洲一级精品| 日本亚洲不卡| 久久久蜜桃一区二区人| 日韩中出av| 91av亚洲| 日韩高清电影免费| 久久久久国产一区二区| 亚洲主播在线| 日韩国产欧美| 欧美日韩视频免费看| 日韩成人精品一区二区| 日韩精品亚洲aⅴ在线影院| 日韩综合精品| 日韩精品免费视频一区二区三区 | 国产精品久久免费视频| 视频精品一区二区| 亚洲大片在线| 成人羞羞视频播放网站| 欧美精品91| 91福利精品在线观看| 日韩精品一二三区| 香蕉精品久久| 日韩大片在线播放| 大香伊人久久精品一区二区| 国产福利亚洲|