linux - 使用 ImageMagick 递归转换所有图像颜色的正确命令
问题描述
我在另一个线程上找到了一个命令,该命令非常适合将特定颜色转换为我在一个目录上测试过的透明颜色。但是,我有许多不同目录中的图像,我需要这样做。文件结构不能改变,理想情况下该命令将简单地用旧图像替换当前图像。当命令现在运行时,它会在 /batch 目录中创建一个新文件。
for file in *.png ; do convert "${file}" -transparent '#bbb7b9' "batch/${file}" ; done
所以对这个命令的两个修改是:
1)命令递归执行
2) 原图替换为新图(文件名相同)
我研究并发现使用该find
命令可能是我需要的,但我对如何从for
命令中翻译它感到困惑......看起来 -exec 的一些变体可能是我需要的,但我没有发现任何有效的东西。
想法/想法?
解决方案
在 ImageMagick 中,您可以使用 mogrify 命令来处理整个图像文件夹(不会自动递归到子目录)。
cd to your image directory
mogrify -format png -transparent '#bbb7b9' *.png
但是,我建议创建一个新目录来保存您的输出图像或创建输入目录的备份副本,这样您就不会犯错误并用坏副本覆盖您的图像。
推荐阅读
- plugins - 如何在eclipse中实现复制参与者以在同一目录中生成一个新文件以及其他同名的相关文件?
- google-bigquery - Google 大查询 API 返回“为此项目扫描的免费查询字节过多”
- python - Python将单词字符串转换为单词列表
- azure - 使用 Azure 机器学习的时间/预测系列
- flask - 如何正确设置 Flask + uWSGI + SQLAlchemy 以避免数据库连接问题
- python - beautifulsoup 按类值文本提取
- matlab - 使用 dsolve 绘制解曲线时遇到问题
- javascript - 如何在Javascript中获取第n个表列值
- pandas - 熊猫数据框中的匹配和重新排列值
- web - 网站如何切实可行地允许用户个人资料拥有自己的 URL?