是否有免费程序(批量)更改照片文件的日期以匹配EXIF?


39

我想指定一个目录,并让软件在该目录及其子目录中查找所有照片,如果它们包含EXIF日期/时间,它将设置其文件系统时间戳以匹配EXIF。


当然,如今,我会在软件建议方面提出这个问题-不过,这里得到了一些很好的答案
Mawg

Answers:


46

这与以下情况相反:是否有任何软件会根据文件的修改日期设置EXIF日期?,并且我确定那里列出的所有程序都将适用。

黑头

其中,对于这个非常简单的任务,我建议使用jhead。例如,命令

jhead -ft *.jpg

设置一堆文件,以便文件时间戳匹配EXIF。

带的jhead find,用于遍历子目录

为了执行递归到子目录,您可以将其与findLinux / Unix / Mac(或Windows的Cygwin)上可用的命令结合使用:

find -name '*.jpg' -exec jhead -ft {} +

或找到任何人*.JPG *.JPEG *.jpg *.jpeg ...也可以尝试

find -iname '*.jp*g' -exec jhead -ft {} +

您还可以使用find来显示将要找到的所有文件,而无需执行任何其他命令(例如jhead):

find -iname '*.jp*g'

其他工具

其他实用程序(如ExifTool或Exiv2)功能更强大,但代价是复杂性。我永远记得的副手合适的选择做什么与和每次都看文件,但jhead -ft易与记忆“修复时间”记得。

Exif工具

不过,为了完整起见,我确实查看了文档,并使用ExifTool进行了此操作:

exiftool -r '-DateTimeOriginal>FileModifyDate' directoryname

-r如果不想递归,请删除,如果这样做,也可以提供文件列表或通配符而不是directoryname。)并小心使用引号-如果在Windows上运行,则需要"代替'

例2

使用Exiv2

exiv2 -T rename *.jpg

请注意,如果使用小写字母-t(或没有小写字母-T),Exiv2还将根据时间戳将文件重命名为新名称,这可能会造成很大的混乱。Exiv2也不进行递归。


2
您是对的,这是相反的,但它实际上更有用:)
Itai 2012年

jhead对此非常有用-以及许多其他jpg文件操作。使用它时要小心-这是一种非常强大的工具,如果使用不当,可能会造成一定程度的破坏。我建议在批处理文件中使用它,以便您始终按预期进行操作,并首先在测试文件集上测试结果。
罗素·麦克马洪

+1,但我给了自己答案;-)以便将来其他人可以找到一种方法来完全按照我的要求做……
Mawg 2012年

@olibre是的,它将在Linux / Unix或Mac上运行。
mattdm

我注意到有些图片浏览器仅以文件名顺序显示(散景)图片(而不是文件修改时间)。最后,我使用EXIF时间戳设置文件时间,并在文件名前添加前缀。我使用命令find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +。说明:-name '[0-9][0-9]*'为了防止再次重命名已经具有日期前缀的文件('[0-9][0-9]考虑到年份和月份)。-iname '*.jp*g'可以跳过,因为jhead仅处理受支持的文件(仅JPEG文件)。%f保留原始文件名。
olibre

12

Irfanview和jhead都可以做您想要的。
都免费。
链接到下面两个。
jhead是命令行驱动的,也可以由其他进程调用。
Irfanview版本可以从命令行调用,也可以在内部批量或逐个文件地调用。

下面的Irfanview示例显示了如何双向复制:


Irfanview

允许从EXIF到文件规格的批处理或每个文件日期/时间的GUI或命令行更改,反之亦然(如果需要,也可以不更改其他文件)。

资料来源:www.irfanview.com免费

这是MUCH更容易和更快实际上只比低于使其显示的说明几次使用后。例如,
要将单个文件的日期/时间转换为EXIF值,需要
Shift-J,Alt-F和Enter。
了解为什么第一次几次需要更长的时间。

要针对一批复杂的SOUNDS文件进行学习-
需要:T,Ctrl-A,Alt-F,J,Enter,(Alt-F),Enter
(或:T,Ctrl-A,Shift-J,输入)(提供较少的选项),
但实际上,经过一点使用,它几乎是完全直观的-菜单最初会指导您直到形成大脑路径。

GUI,每个文件

  Options, JPG lossless rotation  (Shift-J)
    Select "Apply original EXIF date/time to new file"
        Consider also selecting other options

在此处输入图片说明

GUI,一个或多个文件(通过缩略图视图)

Open Thumbnails view ('File, Thumbnails' or 'T' from Window view
Select images to change EXIF data of 
    usually all in folder -> Ctrl-A
Then: File, 'JPG lossless operations'
    (1) Change EXIF date/time
      "Change EXIF date/time"
        Options are offered to set Date/time to specific setting
        or to move all times back/forwards by selected DHMS amount 
              calculator provided to check result is as desired.                 
     (2) Transfer EXIF date / time to file saved date time
          "Lossless rotation with selected files"  [Shift-J]
          then, as for single file version above
              Select "Apply original EXIF date/time to new file"

在此处输入图片说明

从命令行 -这是“旋转”操作,没有任何操作,只是将日期/时间从EXIF复制到文件日期和时间。如果需要,也可以相反。:

  • i_view32.exe file_spec \ *。jpg / jpg_rotate =(0,0,0,1,0,0,0,0)

  • 以相反的方向复制日期/时间((filespec到EXIF)
    如上使用(0,0,1,0,0,0,0,0,0)


黑头

将执行jpeg文件中您可以想象的任何事情

资料来源:免费http://www.sentex.net/~mwandel/jhead/

我使用如下的批处理文件。其他选项是可能的:

  • jhead -ft %1 .jpg

他们说:jhead可以在exif jpeg文件中进行修改

  • 使用jpegtran根据旋转标签放置直立图像
    设置或相对调整内部exif时间戳
    修复大批图像中的日期/时间偏移
    根据exif时间戳重命名或添加日期戳文件
    在图像之间传输exif标头
    替换Exif标头内的缩略图
    编辑jpeg注释(而不是Exif注释)
    从jpeg图像中删除exif或注释部分
    创建包含日期和缩略图的新的最小exif标头

_________________________

注意:2016年8月:“匿名用户”正确地建议一个建议的转换不起作用,正如我所说。我已经广泛地添加到相关领域。


2016年8月:“匿名用户”正确地建议一个建议的转换不起作用,正如我所说。我已经广泛地添加到相关领域。
罗素·麦克马洪

原始文件呢?
Michael C

@MichaelClark我很高兴您提出了这个问题:-)。我注意到我们所有人似乎都处理了JPG文件而不是RAW。我以为您会是问起如何对RAW文件进行此操作的更可能的人之一:-)。
罗素·麦克马洪

4

只是另一个命令行EXIF工具,它可以根据JPEG图像文件中的EXIF元数据来更改文件的最后修改日期以匹配拍照时间:

 exiv2 -T rename somedir/foo*.jpg

不用担心,命令参数rename在那里就可以使用,并且没有害处。
只是文件重命名操作被滥用,仅造成更改时间戳的副作用。


2

虽然我真的不建议您在处理图像时依赖文件日期/时间,但是可以使用名为EXIF Date Changer的免费工具来批量设置所有JPG图像的文件日期。默认设置将同时为拍摄的照片设置创建日期和日期修改文件日期。

我不建议您使用文件日期的原因很容易更新。如果您编辑图像,则修改日期会更新。如果复制图像,它将获得一个新日期。

更好的解决方案是重命名文件以在文件名本身中包含日期/时间。这仍然可以轻松进行排序,并且可以很好地处理存储在iPhone / Dropbox中的图像。

EXIF日期转换器-将文件日期设置为拍摄日期



1

FastStone Image Viewer可以执行此操作(使用4.9版)-只需在缩略图窗格中选择文件,右键单击它们,选择“工具”>“更改时间戳记”-然后您可以使用EXIF(带有或不带有修改)的数据或使用whoif自定义固定的手动日期/时间。


哇!我确实不知道。我已经使用他们的屏幕捕获工具很多年了,没有发现更好的东西。您可以在这里获得最新的免费版本;我不需要任何付费功能。我过去也曾使用过他们的查看器,但不知道它可以做到这一点。
Mawg

1

Advance Renamer是最简单的最佳用户友好软件。

  1. 将所有照片拖放到AR(Advance Renamer)

  2. 单击(左上方)添加方法->新名称

  3. 单击图像底部中间的一个,您将看到一个ExifTool按钮,该按钮显示所有元数据,只需单击一个属性即可获得标签。在这种情况下,它是<ExifTool:DateTimeOriginal>

  4. 复制此内容并粘贴到“ 新名称”文本框中。您可以在IMG_<ExifTool:DateTimeOriginal>DSC_<ExifTool:DateTimeOriginal>等之前或之后添加任何内容。

  5. 单击“ 开始批处理”(右上),这会将所有文件重命名为日期,例如2017_12_01 19_10_12 最好在文件名中保留原始日期,因为属性可能会丢失,但文件名不会丢失。

  6. 再次将所有重命名的文件拖到AR
  7. 单击新方法->时间戳记
  8. 选中所有3个复选框创建,修改,访问(有时可能无法访问,只是将其取消选中即可)
  9. 选择文件名模式 并粘贴<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. 开始批处理。
  11. 你很厉害。任务完成

0

我建议给PhotoRenamer的作者,他回答...

PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php

我在功能区的“选项”选项卡中添加一个按钮。从此处,您可以选择用于更新文件的文件时间状态的选项。

顺便说一句,为避免使用遮罩,我还添加了一个新的遮罩属性:%F。如果使用此简单掩码,则将文件重命名为...具有其自己的名称...因此,您不必重命名要为其更新文件时间属性的文件...


0

这是一个古老的问题,似乎有一些建议应该可以很好地起作用,但是我在Android手机升级后找到的解决文件订购问题的建议就是这个。

  • 启动Windows(这是有史以来的第一次)
  • 安装ExtFS或可以读取ext4分区的内容
  • 将照片从Micro SD复制到硬盘
  • 使用属性更改器(https://www.petges.lu/home/)将创建/修改的日期设置为EXIF日期
  • 重击卡回到手机
  • 通过MTP将照片复制回手机

也许这对某人有用。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.