linux - 如何对子文件夹中的所有图像使用 ImageMagick 转换命令

标签 linux image optimization imagemagick bulk

对于单个文件,我使用以下 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/

相关文章:

linux - 在 Linux 上安装 pgmagick

linux - 高容量缓冲区 fifo 或使用文件作为 fifo 缓冲区

image - 设置 div 背景图像以适合其大小?

swift - Swift 2.0 中的 PFFile 图像缓存

r - 如何使用 LpSolve 在 R 中设置线性规划优化?

linux - 文件名差异为 1 的文件的输出行数

c - 如何通过 DirectFB 使用鼠标

python - 将 Pytorch 4D 张量另存为图像

c++ - Visual Studio 还能优化预编译代码吗?

c - C中的空间数据结构