我正在使用
-kmeans
将一些图像从真正的 RGB 减少到 256 色,以便在虚幻引擎 1 中使用。为了使这些纹理具有透明度,我需要使用洋红色遮罩颜色 (#ff00ff
)。
问题是我要转换的图像是抗锯齿的,因此它们包含真正的洋红色和其他颜色之间的步骤,导致遮罩区域周围出现粉红色像素。我无法更改源图像来防止这种抗锯齿。
我的想法是将一系列洋红色的颜色减少为真正的洋红色。 (示例)我该怎么做?
这是我到目前为止的命令。我还需要将洋红色作为索引中的第一种颜色,这样做可以做到这一点,但它会显着恶化输出的质量:
magick "$PNG_FILE" -define kmeans:seed-colors="#ff00ff" -kmeans 255 "$PCX_FILE"
实际上,这种方法是不可行的,因为它最终可能会瞄准非预期的像素。更好的方法是将蒙版隔离在单独的文件中,其中只有蒙版和透明背景,使用
-kmeans 2
删除抗锯齿,然后使用 composite
将该图像叠加到基础纹理上