对于单个文件,我使用以下 ImageMagick 命令(如 google suggests ):
对于 png
convert file.png -sampling-factor 4:2:0 -strip -quality 85 -interlace PNG -colorspace sRGB file.png
对于jpg
convert file.jpg -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace sRGB file.jpg
但我需要对子文件夹中的所有 .jpg 执行相同的操作
我试过这个:
find ./*.jpg | xargs convert $ -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace sRGB $
以及所有压缩但以第一个添加索引的名称命名的图像,示例:
/img/first-one-0.jpg
/img/first-one-1.jpg
/img/first-one-2.jpg
/img/first-one-3.jpg
...
我怎样才能批量覆盖原件?即使我们有多个子目录:
/img/dir-1/one.jpg
...
/img/dir-2/foo.jpg
最佳答案
如果你想覆盖目录中的所有文件,使用mogrify
:
mogrify -sampling-factor 4:2:0 -strip -quality 85 -interlace PNG -colorspace sRGB *.png
如果您希望将结果写入名为 processed
的新子目录中:
mkdir processed
mogrify -path processed ...
如果您使用的是 ImageMagick v7 或更新版本,则变为:
mkdir processed
magick mogrify -path processed ...
关于linux - 如何对子文件夹中的所有图像使用 ImageMagick 转换命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50349452/