使用 ImageMagick 递归地转换所有图像颜色的正确命令
Correct command to convert colors for all images recursively with ImageMagick
我在另一个线程上找到了一个命令,该命令非常适合将特定颜色转换为我在一个目录中测试过的透明颜色。但是,我需要对不同目录中的许多图像执行此操作。文件结构不能改变,理想情况下命令将简单地用旧图像替换当前图像。当命令现在运行时,它会在 /batch 目录中创建一个新文件。
for file in *.png ; do convert "${file}" -transparent '#bbb7b9' "batch/${file}" ; done
所以对该命令的两个修改是:
1)命令递归执行
2) 原图替换为新图(文件名相同)
我已经研究并发现使用 find
命令可能是我所需要的,但我对如何从 for
命令转换它感到困惑......看起来像-exec 的一些变体可能是我需要的,但我还没有找到任何有用的东西。
Thoughts/Ideas?
在 ImageMagick 中,您可以使用 mogrify 命令处理整个文件夹的图像(不会自动递归到子目录)。
cd to your image directory
mogrify -format png -transparent '#bbb7b9' *.png
但是,我建议要么创建一个新目录来保存您的输出图像,要么创建一个输入目录的备份副本,这样您就不会犯错并用错误的副本覆盖您的图像。
我在另一个线程上找到了一个命令,该命令非常适合将特定颜色转换为我在一个目录中测试过的透明颜色。但是,我需要对不同目录中的许多图像执行此操作。文件结构不能改变,理想情况下命令将简单地用旧图像替换当前图像。当命令现在运行时,它会在 /batch 目录中创建一个新文件。
for file in *.png ; do convert "${file}" -transparent '#bbb7b9' "batch/${file}" ; done
所以对该命令的两个修改是:
1)命令递归执行
2) 原图替换为新图(文件名相同)
我已经研究并发现使用 find
命令可能是我所需要的,但我对如何从 for
命令转换它感到困惑......看起来像-exec 的一些变体可能是我需要的,但我还没有找到任何有用的东西。
Thoughts/Ideas?
在 ImageMagick 中,您可以使用 mogrify 命令处理整个文件夹的图像(不会自动递归到子目录)。
cd to your image directory
mogrify -format png -transparent '#bbb7b9' *.png
但是,我建议要么创建一个新目录来保存您的输出图像,要么创建一个输入目录的备份副本,这样您就不会犯错并用错误的副本覆盖您的图像。