在iOS中更换图像的特定颜色

7
我希望替换图像的特定颜色为用户选择的其他颜色。在替换图像颜色时,我希望保留原始颜色的渐变效果。例如,请参见附加的图片。 image1.png
image2.png 我已尝试使用CoreGraphics进行操作,并成功替换了颜色。但是,替换的颜色不能保留图像中原始颜色的渐变效果。
有人能帮帮我吗?使用CoreGraphics是否正确?提前致谢。

2
你能把你目前的代码贴出来吗? - sam-w
你可能需要寻找特定的RGB比率而不是特定的颜色,然后替换所有具有类似于目标颜色比率的RGB比率的像素。在比率上需要一定的阈值。我从未尝试过这样做,但这是我处理它的方式。 - Fonix
1
看一下这个问题。这可能会对你有所帮助。https://dev59.com/5Wsz5IYBdhLWcg3wOVH5 - Aravindhan
1
没有用户干预(即没有区域划分和其他限制)很难做到这一点,上面提到的问题在这方面非常薄弱。在http://stackoverflow.com/a/14307006/1832154上有一个快速讨论的方法可以自动完成,生成的图像大多是可接受的。此外,请注意,在`image2.png`中,其中一个灯变成了绿色。 - mmgp
1
@PeterHosey - 我将他们原始的色度键示例转换为通用的OpenGL ES着色器:http://stackoverflow.com/a/12847774/19679,并且它 tends to freak out around white values。 它也可以匹配颜色,但我可以看到修改它以替换色度而保持亮度。 - Brad Larson
显示剩余2条评论
2个回答

1

-2
我在我的项目中经常进行图像之间的颜色转换/混合/替换/交换,并发现以下出版物非常有用,都是由Erik Reinhard撰写的:
- 图像之间的颜色转换 - 渲染和捕捉视频的实时颜色混合 不幸的是,我现在不能发布任何源代码(或图像),因为结果将提交给即将举行的会议,但我已经根据以上算法实现了各种变体,并取得了非常令人满意的结果。我相信只要稍加调整(并稍作耐心),您就能够获得您想要的效果!
此外,真正的挑战将在于将不同的图片元素分离出来(例如隔离墙壁)。这不亚于Photoshop的魔术棒工具,显然需要大量的处理能力和复杂的算法(而且仍然不完美)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接