如何批量调整多张照片的大小-但保持时间戳不变?

如何批量调整多张照片的大小-但保持时间戳不变?

我在许多文件夹中有数千张照片。我想批量调整它们的大小,例如最长边为 3000px并保持时间戳完整。

我使用了非常简单的工具帕奇调整所有文件的大小,但文件的原始时间戳已消失,并且 Phatch 中没有设置可以避免这种情况。所以我现在有一个包含所有原始文件的主文件夹,以及另一个包含 Phatch 结果的文件夹 - 以防万一这有帮助。

  • 平台:Linux(Ubuntu)
  • 源文件:多个子文件夹中的 2000 个 JPG 文件
  • 目标:调整为 3000px(除非已经小于该尺寸),
    • 调整文件大小
    • 或使用相同的文件夹结构保存为副本
    • 保持原始文件名和时间戳不变

我还不是一个 Linux 用户(目前还不知道我可以使用什么工具(imagemagick?mogrify?)以及如何使用,但我很乐意接受任何提示!

答案1

你可以做这样的事情,使用从包转换图像魔法,将新文件放入 /tmp/new 或类似目录中:

mkdir /tmp/new
find . -iname '*.jpg' |
while read file
do convert -resize '>3000x>3000' "$file" /tmp/new/"$file"
   touch -r "$file" /tmp/new/"$file"
done

如果对结果满意,则使用以下命令移动它们:

rsync -a /tmp/new/ .
rm -fr /tmp/new

答案2

实际上mogrify从同一个包中可以-define preserve-timestamp=true做同样的事情,但要小心,这将覆盖原始图像

相关内容