成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:6日期: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
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
黄色成人av网站| 国产黄人亚洲片| 蜜臀av一区二区在线观看| 亚洲美女黄色| 亚洲丝袜制服诱惑| 国产一区二区无遮挡| 国产农村妇女毛片精品久久麻豆 | 翔田千里一区二区| 亚洲你懂的在线视频| 亚洲久色影视| 亚洲天堂精品在线观看| 国产精品www994| 最近日韩中文字幕| 亚洲激情二区| 亚洲午夜影视影院在线观看| 免费国产一区二区| 亚洲成va人在线观看| 色综合久久久久综合| 青娱乐精品在线视频| 在线视频你懂得一区| 久久国产免费看| 欧美一区二区在线播放| 丁香六月综合激情| 久久久蜜桃精品| 国内一区二区三区| 亚洲色图视频免费播放| 国产精品乱码一区二区三区| 亚洲成a人v欧美综合天堂| 在线亚洲一区二区| 极品少妇xxxx精品少妇| 91精品国产高清一区二区三区蜜臀 | 亚洲另类自拍| 亚洲自拍偷拍麻豆| 91久久免费观看| 九九在线精品视频| 日韩精品一区二区三区中文不卡 | 在线综合视频播放| 国产成人免费9x9x人网站视频| 欧美一区二区三区啪啪| 成人高清av在线| 中文字幕久久午夜不卡| 在线日韩av| 亚洲永久免费视频| 欧美亚一区二区| 丁香婷婷深情五月亚洲| 国产女同性恋一区二区| 国产欧美三级| 日本va欧美va精品| 日韩精品在线看片z| 欧美日韩在线高清| 亚洲大型综合色站| 欧美精品色一区二区三区| 99久久99久久综合| 国产精品久久久久久久久免费桃花| 亚洲一卡久久| 国产揄拍国内精品对白| 国产欧美va欧美不卡在线| 国产精品久久久久久模特| 精品一区二区三区香蕉蜜桃| 2023国产精华国产精品| 日韩午夜高潮| 久久国产精品色| 日本一区二区三区在线观看| 亚洲影视在线| 国产一区二区三区在线观看免费视频| 久久精品一区八戒影视| 国产精品日韩高清| 激情伊人五月天久久综合| 国产亚洲污的网站| 欧美在线综合| av资源网一区| 亚洲成人你懂的| 日韩三区在线观看| 亚洲国产激情| 国产精品一区不卡| 最新成人av在线| 欧美男人的天堂一二区| 国产在线精品二区| 人人狠狠综合久久亚洲| 国产人伦精品一区二区| 色呦呦国产精品| 色综合色综合色综合| 午夜欧美2019年伦理| 欧美mv和日韩mv国产网站| 国产精品美女诱惑| 不卡av免费在线观看| 午夜激情一区二区| 久久婷婷一区二区三区| 久久综合久久久| 欧美精品系列| 久久精工是国产品牌吗| 国产精品久久久一本精品| 欧美美女bb生活片| 一区二区三区三区在线| av中文字幕亚洲| 免费在线观看视频一区| 综合激情成人伊人| 日韩午夜精品电影| 国产精品一区免费观看| 97精品国产露脸对白| 免费在线观看一区二区三区| 国产精品乱子久久久久| 欧美另类z0zxhd电影| 在线亚洲精品| 91蜜桃网址入口| 美女mm1313爽爽久久久蜜臀| 亚洲色图视频网| 欧美变态tickle挠乳网站| 色国产综合视频| 亚洲亚洲精品三区日韩精品在线视频| 国产麻豆成人传媒免费观看| 亚洲午夜精品17c| 国产视频在线观看一区二区三区 | 粉嫩蜜臀av国产精品网站| 亚洲综合图片区| 久久久久久久精| 欧美日本一区二区三区四区 | 91久久国产综合久久| 亚洲经典视频在线观看| 99re成人在线| 国产精品夜夜嗨| 免费看日韩精品| 亚洲综合无码一区二区| 国产精品美女一区二区三区| 欧美成人性战久久| 欧美性一二三区| 国产亚洲精品v| 欧美另类视频在线| 成人美女视频在线看| 捆绑调教美女网站视频一区| 亚洲国产精品一区二区久久恐怖片| 国产欧美日韩在线观看| 日韩欧美高清在线| 欧美日韩黄色一区二区| 色悠悠亚洲一区二区| 国产精品嫩草99av在线| 国产精品草草| 91视视频在线观看入口直接观看www| 国产乱子轮精品视频| 日本在线不卡视频| 午夜欧美在线一二页| 亚洲美女少妇撒尿| 中文字幕乱码久久午夜不卡| 久久综合色之久久综合| 51精品秘密在线观看| 欧美综合一区二区三区| 久久久国产精品一区二区中文| 99视频一区| 亚洲天堂激情| 狠狠色丁香久久综合频道| 欧美成人69av| 99re成人在线| av中文字幕亚洲| 波波电影院一区二区三区| 国产经典欧美精品| 国产精品1024| 国产成人av电影在线观看| 激情成人综合网| 狂野欧美性猛交blacked| 日韩精品乱码免费| 视频精品一区二区| 日韩高清不卡一区二区| 丝袜美腿高跟呻吟高潮一区| 亚洲在线中文字幕| 亚洲一区二区欧美| 亚洲国产视频在线| 亚洲成人一区二区在线观看| 亚洲成人免费在线观看| 亚洲不卡一区二区三区| 五月婷婷激情综合| 日本美女一区二区| 蜜臀av一区二区在线观看| 日韩一区精品视频| 日韩成人av影视| 美女视频黄久久| 国产中文一区二区三区| 国产精品99久久久久久似苏梦涵 | 三级影片在线观看欧美日韩一区二区| 亚洲黄色免费网站| 亚洲综合久久久| 亚洲成a人片在线不卡一二三区 | 欧美一级一区二区| 欧美成人a∨高清免费观看| 精品国产青草久久久久福利| 久久久精品人体av艺术| 亚洲国产精品精华液2区45| 成人免费小视频| 一区二区三区在线视频免费| 亚洲1区2区3区视频| 日本不卡一二三区黄网| 精品在线一区二区三区| 成人在线综合网| 女女同性女同一区二区三区91| 欧美精品偷拍| 亚洲日本精品国产第一区| 欧美资源在线| 欧美日韩在线观看一区二区| 91麻豆精品国产91久久久| 精品福利av导航| 国产精品久久久久久久久动漫|