我在许多文件夹中有数千张照片。我想批量调整它们的大小,例如最长边为 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
做同样的事情,但要小心,这将覆盖原始图像。