从命令行改变一个人的种族。

Alter a person's race from the command line.

我正在构建的一个残疾项目(here 为了您的兴趣)。使用一组无版权的图标。以下是它们的一些使用示例。

所有的图标都是白人,这让我们很困扰。我们想让它们更加多样化和更具代表性。

图标是png。 Here's 一个例子。我觉得必须有一种命令行方式可以将一种颜色替换为另一种颜色。如果我有那个,那么我可以半自动地做很多事情,但我不知道这样的事情是否可能。

是吗?

您可以使用 ImageMagick 或 GraphicsMaqick 将特定颜色替换为另一种颜色。在您的屏幕截图中,"flesh" 是颜色 #FFEFC6。使用 -fill newcolor -opaque oldcolor 将此颜色替换为另一种颜色(并使用“-fuzz 10%”将所有颜色为 "close" 的像素替换为旧颜色):

magick pdzSe.png -fill black -fuzz 10% -opaque "#FFEFC6" black.png
magick pdzSe.png -fill orange -fuzz 10% -opaque "#FFEFC6" orange.png
magick pdzSe.png -fill brown -fuzz 10% -opaque "#FFEFC6"  brown.png

如果要使用 GraphicsMagick,请将 magick 替换为 gm convert,如果要使用 ImageMagick 版本 6,请将 magick 替换为 convert。如果您在 Windows 上 运行,则需要将 % 替换为 %%

这应该足以让您入门,但这是一个粗略的解决方案,不考虑混合像素,例如出现在示例 "thumbs-up" 图标中的像素。下面是 运行 相同命令针对 "thumbs-up" 的结果,放大了 4 倍,因此您可以看到 "flesh" 边缘周围的 "halo" 效果。摆脱 "halos" 将需要更多工作,具体到您的图标集。理想情况下,您应该更新原始矢量艺术作品,但我想情况并非如此。

事实上,原图可在 straight-street.com(搜索 "good")获得,使用原始 SVG 文件要简单得多;没有 "halo" 问题。这里我只是用一个文本编辑器将颜色 FFEFC6 更改为 FF8888: