在iOS中replace特定颜色的图像

我想用其他用户select的颜色replace图像的特定颜色。 在replace图像的颜色时,我想保持原来颜色的渐变效果。 例如看到附加的图像。 image1.png
image2.png

我试图用CoreGraphics这样做,我成功取代了颜色。 但replace颜色不能保持图像中原始颜色的渐变效果。

有人可以帮我吗? CoreGraphics是正确的方法来做到这一点? 提前致谢。

在我的项目中,我在图像之间进行了大量的颜色转换/混合/replace/交换,并且发现了以下出版物非常有用,Erik Reinhard:

  • 图像之间的颜色转移
  • 渲染和捕捉video的实时颜色混合

不幸的是,我现在不能发布任何源代码(或图片),因为结果正在提交给即将到来的会议,但是我已经实现了上述algorithm的变体,并且具有非常令人满意的结果。 我相信有一些调整(和一点耐心),你可能会得到你的东西!

编辑:

而且,真正的挑战在于分离不同的图像元素(例如隔离墙)。 这与Photoshop的魔棒工具无异,这显然需要大量的处理能力和复杂的algorithm(而且还不完美)。

经过一些挣扎几乎与同样的问题(但与NSImage),在使用ColorCube CIFilter NSImage取代了颜色的类别。

https://github.com/braginets/NSImage-replace-color

受此代码UIImage启发(也使用CIColorCube): https : //github.com/vhbit/ColorCubeSample