我正在寻找一种在现有图片上叠加颜色的算法。类似于以下应用程序(墙画家):http://itunes.apple.com/us/app/wall-painter/id396799182?mt=8
我想要一个类似的功能,所以我可以在现有图片中绘制墙壁并将它们更改为不同的颜色。
我可以在yuv或rgb模式下工作。
答案 0 :(得分:1)
您可以尝试使用kCGBlendModeColor
绘制图形上下文。来自文档:
使用背景的亮度值和源图像的色调和饱和度值。此模式保留图像中的灰度级。您可以使用此模式为单色图像着色或着色彩色图像。
尝试其他混合模式也可以解决问题。有关详细信息,请参阅文档(搜索“kCGBlendMode”)。
答案 1 :(得分:1)
RGB和YUV颜色模型不太适合以这种方式改变颜色。我认为最好的颜色模型是HLS。
链接:RGB to HLS and HLS to RGB conversion source code
您可以在照片编辑应用中评估这三个组件的效果,例如GIMP的Photoshop。
答案 2 :(得分:1)
要成功地在图片中绘制墙壁,您必须执行两个步骤:
在图片中找到墙的边界(选择要着色的图像部分)
将所需颜色应用于所选区域
第一步是艰难的部分。它类似于Photoshop的魔棒工具。事实上,搜索魔杖算法会出现一些好文章,例如带有Objective-C代码的article。
第二步更容易,可以通过CGContextSetBlendMode
和CGContextDrawImage
来实现。