如何将 PNG 批量转换为 JPEG 并在文件系统和 EXIF 标头中保留时间戳?

如何将 PNG 批量转换为 JPEG 并在文件系统和 EXIF 标头中保留时间戳?

我有时会在与朋友/家人进行视频通话时在 Mac 上截取屏幕截图(当然要征得他们的同意!),并希望将这些照片添加到我的 Apple Photos 图库中。我考虑过以下选项/替代方案:

  1. 将 PNG 按原样添加到 Apple Photos:但无损图像格式(如 PNG)适用于照片内容是存储浪费 10-20 倍。Apple Photos 没有“压缩库中的此文件”功能。因此我需要外部预处理。
  2. 将 JPEG 设置为 macOS 原生截图命令的输出格式。这是有可能的。但是我截图是自发的,因此我需要一直切换该选项,而且在我切换之前屏幕上的情况可能已经结束了。所以这也不是选择。
  3. 因此,为了最大程度地保持质量,请保留 PNG 作为默认值。在添加到照片库之前,稍后在后期处理中进行压缩是有意义的。

那么有谁知道用于此目的的 CLI 工具或 GUI 应用程序吗?

答案1

我)使用 ImageMagick 执行从 PNG 到 JPG 的批处理,同时保留时间戳:

mogrify -verbose -define preserve-timestamp=true -format jpg -quality 60% -path ./output/ ./input/*.png
  • preserve-timestamp正确保存文件系统中的创建和修改时间戳。
  • 但在 EXIF 标头中并未创建时间戳!
  • 正如我在2018 年 10 月论坛帖子写入 EXIF 元数据似乎不属于 ImageMagick 的范围。
  • 因此使用另一个工具:

二)使用 ExifTool 将文件系统中的创建日期复制到文件系统中的创建和修改日期并复制到文件的 EXIF 标头中。

exiftool "-alldates<filecreatedate" -overwrite_original_in_place -P ./output/
  • overwrite_original_in_place导致这仍然是同一个文件,因此创建日期保持不变。
  • -P保留被覆盖的原始文件的修改时间戳。
  • 并且 EXIF 时间戳也会更新,因为它包含在内-alldates

相关内容