【问题标题】:How to extract the date of creation of a photo using R?如何使用 R 提取照片的创建日期?
【发布时间】:2017-10-19 23:59:27
【问题描述】:

我有超过 800 张图片需要提取创建日期。但是如果我使用file.mtime 函数,它就不起作用。这只是我修改它的日期。有趣的是,iPhoto(Mac 上一个用于管理照片的程序)能够正确检测创建日期。

这是我使用的代码。

my.path = "~/Desktop/cool_path_here"
vec.jpg = list.files(path = my.path)
lapply(paste(my.path,vec.jpg,sep = "/"),FUN =  file.mtime)

是否有一种功能可以提取照片的创建日期,而不是 mac 上“获取信息”菜单中显示的日期。

例如:(昨天是 5 月 18 日)

在 iPhoto 中(3 月 16 日发现):

R 正在寻找:

2017-05-19 15:08:29

【问题讨论】:

    标签: r


    【解决方案1】:

    使用exif 包到extract the metadata

    library(exif)
    read_exif(paste(my.path,vec.jpg[1], sep="/"))$origin_timestamp
    

    正在返回"2017:03:16 08:47:48",这就是我要找的!

    【讨论】:

    • 包名好像是(现在)“exifr”
    【解决方案2】:

    根据?file.infomtime是修改时间,ctime是“最后一次状态改变”时间,atime是最后一次“访问”时间。根据here,POSIX 标准(which Mac OS follows)在文件的标准属性中不包括创建时间。

    file.info(my.path)$atime 可能会更好。在此测试中没有改变:

    DF = data.frame(a = 1:10, b = 10:1)
    tmp = tempfile()
    write.table(DF, tmp)
    Sys.time()
    # [1] "2017-05-19 15:03:46 EDT"
    file.info(tmp)[ , c('mtime', 'ctime', 'atime')]
    #                                                mtime               ctime               atime
    # /tmp/Rtmpzpi8p6/file29e932565c62 2017-05-19 15:03:46 2017-05-19 15:03:46 2017-05-19 15:03:46
    DF$c = 11:20
    Sys.sleep(10)
    write.table(DF, tmp)
    file.info(tmp)[ , c('mtime', 'ctime', 'atime')]
    #                                                mtime               ctime               atime
    # /tmp/Rtmpzpi8p6/file29e932565c62 2017-05-19 15:03:56 2017-05-19 15:03:56 2017-05-19 15:03:4
    

    顺便说一句,对list.files 使用full.names 参数,而不是使用pastesep='/'

    【讨论】:

    • 我试过这个,但它不起作用。我的意思是,jpeg 中还有其他元数据,该函数无法提取。我想知道是否有办法在 R 中提取元数据。iPhoto 能够做到,所以我猜 R 应该是……
    • @M.Beausoleil 你必须提供一些可重复的例子
    • 我想分享但不能真正分享有问题的图片。但可以肯定的是,存在 file.info 无法获取但 iPhoto 能够获取的信息。
    • @M.Beausoleil 您不一定需要分享有问题的图片。只需模拟一些您可以共享甚至使用 Google 的文件。
    • @M.Beausoleil 这个包有用吗? cran.r-project.org/web/packages/exif/exif.pdf
    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 2021-05-23
    • 1970-01-01
    相关资源
    最近更新 更多