我想用其他用户选择的颜色替换图像的特定颜色。在替换图像颜色时,我想保持原始颜色的渐变效果。例如,请参阅所附图像。
我曾尝试使用 CoreGraphics 这样做,并且成功替换了颜色。但是替换颜色并没有保持图像中原始颜色的渐变效果。
有人可以帮我吗?CoreGraphics 是正确的方法吗?提前致谢。
在经历了几乎相同的问题(但使用 NSImage)后,在使用 ColorCube CIFilter 的 NSImage 中创建了一个用于替换颜色的类别。
https://github.com/braginets/NSImage-replace-color
受 UIImage 代码的启发(也使用 CIColorCube): https ://github.com/vhbit/ColorCubeSample
我在项目中的图像之间进行了很多颜色转移/混合/替换/交换,并发现以下出版物非常有用,均由 Erik Reinhard 撰写:
不幸的是,我现在无法发布任何源代码(或图像),因为结果将提交给即将举行的会议,但我已经实现了上述算法的变体,结果非常令人满意。我敢肯定,通过一些调整(和一点耐心),您可能会得到您想要的!
编辑:
此外,真正的挑战在于分离不同的图片元素(例如隔离墙)。这与 Photoshop 的魔术棒工具没有什么不同,后者显然需要大量的处理能力和复杂的算法(并且仍然不完美)。