更正命令以使用ImageMagick递归转换所有图像的颜色

时间:2018-06-25 15:27:24

标签: linux bash macos imagemagick

我在另一个线程上找到了一条命令,该命令非常适合将特定颜色转换为我已经在一个目录上测试过的透明颜色。但是,我需要这样做,因此存在许多不同的图像。文件结构无法更改,理想情况下,该命令将简单地用旧映像替换当前映像。现在,该命令运行时,它将在/ batch目录中创建一个新文件。

const {VueLoaderPlugin} = require('vue-loader')
...
plugins: [
    new ExtractTextPlugin({
        filename: "[name].[hash].css"
    }),
    // new ForkTsCheckerWebpackPlugin({
    //     vue: true,
    // }),
    new VueLoaderPlugin()
]

因此对该命令的两个修改为:

1)该命令以递归方式执行

2)将原始图像替换为新的图像(具有相同的文件名)

我研究发现,可能需要使用for file in *.png ; do convert "${file}" -transparent '#bbb7b9' "batch/${file}" ; done 命令,但是我对如何从find命令转换过来感到困惑...看起来有些变化-exec可能是我需要的,但是我还没有找到任何有效的方法。

想法/想法?

1 个答案:

答案 0 :(得分:0)

在ImageMagick中,您可以使用mogrify命令来处理整个图像文件夹(不自动递归到子目录)。

cd to your image directory
mogrify -format png -transparent '#bbb7b9' *.png


但是,我建议您要么创建一个新目录来保存您的输出图像,要么为您的输入目录创建一个备份副本,这样您就不会犯错并用错误的副本覆盖图像。

请参见http://www.imagemagick.org/Usage/basics/#mogrify