批量替换透明色


17

我有大量的PNG图像(实际上一次只能做一个,太多),并且背景都是粉红色,我想用透明色代替背景色。如果这不可能或特别困难,则用白色替换指定的颜色将很有用。

我有gimp但没有photoshop,并且对命令行不太满意,因此,如果需要解决方案,请显示每个步骤。能够做到这一点真是太好了,任何帮助将不胜感激。

Answers:


21

我知道您说您对命令行工具不满意,但是ImageMagick可以做到这一点:

更换特定颜色

convert balloon.gif -transparent blue balloon_trans.gif

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

balloon.gif源图像在哪里,-transparent指定您要透明的bg,blue是要替换的颜色,balloon_trans.gif是完整的图像。

这是基于您的“亮粉色”不属于任何图像的假设。有关更智能的背景去除(填充),请查看本教程:遮罩简单背景(填充)

这可能会有些毛茸茸,您尝试执行的操作可能不需要它们指定的某些选项,因此@graphics man建议您可以添加background到命令中


如果可以告诉我您使用的是什么操作系统以及示例图像,我可以通过脚本帮助您自动执行此操作以处理许多图像


针对您的具体情况:

首先,安装ImageMagick。您可能需要在安装后重新启动以更新PATH变量(我这样做了)

安装完成后,启动命令提示符(“开始”菜单,键入cmd,按Enter键)

您需要将目录更改为保存图像的目录。根据您的情况,输入以下命令:

cd C:\Users\Eric\Pictures\pngs\logos

现在我们需要创建一个文件夹来保存所有图像:

mkdir batch

现在,转换所有图像的命令:

FOR %G IN (*.png) DO convert "%G" -transparent #FF00FF "batch\%G"

注意:对于ImageMagick v7,请使用magick代替convert,这样

FOR %G IN (*.png) DO magick "%G" -transparent #FF00FF "batch\%G"

如果一切顺利,则新保存的图像应位于您创建的批处理文件夹中。

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明


1
一个好的解决方案,如果有人想知道等效的Linux bash:* .png中的文件;确实将“ $ {file}”转换为-transparent'#ffcc66'“ batch / $ {file}”; 完成
Sameer Shemna 2014年

对于Mac,这似乎与之相关:superuser.com/questions/773590 / ... 谢谢!
丹·罗森斯塔克

这不像Gimp那样工作。如果您有一个白色像素,黑色像素上方有alpha 0.5,并且您想要删除黑色,则灰色像素将保留。
Iulian Onofrei

3

如果您正在运行gimp并不想使用Imagemagick,则可能需要看一下David的批处理程序(DBP)。它是用于批处理的gimp的插件。 请注意,我从未使用过它,也没有对其进行测试,但是我以前见过它。如果您有Photoshop,我可以向您展示如何使用批处理或操作。


我已经使用过它,并且已将其用于大量裁剪这些图像,但是似乎没有任何替代颜色的选择。也许我想念它,还是有旧版本?
2013年

我不知道。我只是熟悉该插件,因为客户端正在使用该插件批量编辑图像并出现错误。正如John发布的那样,Imagemagick是一个强大的选项,可以解决您的所有问题。那里的网站很详细。看看imagemagick.org/script/index.php
DᴀʀᴛʜVᴀᴅᴇʀ

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.