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

Tor*_*uun 4 linux photos batch image-editing

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

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

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

我还不是一个足够了解 Linux 的人,不知道我可以使用哪些工具(imagemagick?mogrify?)以及如何使用,但我很乐意接受任何提示!

meu*_*euh 5

您可以执行类似的操作,使用包imagemagick中的转换,将新文件放入 /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
Run Code Online (Sandbox Code Playgroud)

如果对结果满意,请通过以下方式移动它们:

rsync -a /tmp/new/ .
rm -fr /tmp/new
Run Code Online (Sandbox Code Playgroud)