如何加快代码读取 exif 数据的速度?

问题描述 投票:0回答:1

我正在从大量 tif 文件中读取 exif 数据,以便获取每个文件的修改日期并将其作为列表返回。我正在使用以下代码:

ref_img_path <- file_list[1]


exif_data<-exifr::read_exif(ref_img_path)
exif_data
modification_date <- exif_data$FileModifyDate
print(modification_date)


read_tif_modification_dates<-function(folder_path) {
  
  tif_files <- list.files(folder_path, pattern = ".tif", full.names = TRUE)

  
 timestamps<-list()
 
 for(tif_file in tif_files){
   exif_data <- read_exif(tif_file)
   modification_date_str<-exif_data$FileModifyDate
   modification_date<-as.POSIXct(strptime(modification_date_str, "%Y:%m:%d %H:%M:%S"))
   timestamps[[tif_file]]<- modification_date
}
 
  return(timestamps)
}
  
  timestamps_list<-read_tif_modification_dates(folder_path)

它适用于包含 11 个图像的文件夹。它仍然可以处理包含 100,000 个内容的文件夹,但需要几个小时。有没有办法可以加快速度?

r tiff
1个回答
0
投票

请注意,“FileModifyDate”实际上并不是 EXIF 元数据标记。底层的

exiftool
只是从文件系统中提取该信息。如果这就是您需要的全部信息,则根本不需要解析 EXIF 数据。可以跑了

file.info(tif_files)$mtime

作为一条语句一次性获取所有文件的修改日期/时间值。它们已被格式化为

POSIXct
值,因此您无需将它们显式转换为日期/时间值。

© www.soinside.com 2019 - 2024. All rights reserved.