IoS Cocoa给定颜色填充区域

问题描述:

我尝试着色给定位图区域。在屏幕上显示之后。 目前我使用以下方法: 有代表位图CGContextRef和二维位数组 - 通过它我们知道哪个像素着色。然后一个循环抛出这个数组并绘制一个椭圆:IoS Cocoa给定颜色填充区域

for(int i = 0; i < width; i++){ 
    for(int j = 0; j < height; j++){ 
     if(colormask[i][j] == 1){ 
      CGRect circleRect = CGRectMake(i, j, 1, 1); 
      CGContextSetRGBFillColor(bitmap, red, green, blue, 1.0); 
      CGContextFillEllipseInRect(bitmap, circleRect); 
     } 
    } 
} 

这样可以解决问题,但工作速度太慢。请提供任何其他想法。也许有解决方案使用Quartz?

+0

我可以知道你想要哪种图像的颜色。只是在这里标记一个简单的图像,并告诉你想要哪个部分的颜色..以便我们可以帮助你.. – Aravindhan 2012-04-04 16:41:15

+0

这是任何黑白图像,例如在孩子们的着色书。然后我想为它的某个域着色。 – Robert 2012-04-04 16:50:13

您可以使用Flood fill Algorithm为图像着色,它将非常快速和高效。 Objective-c版本的洪水填充算法是Here

+0

是的,我已经实现了这个算法。通过我建立您的链接好主意如何颜色域 - 我只需要设置像这样的位图数据的适当字节: '代码' int byteIndex =(bytesPerRow * y)+ x * bytesPerRow/width; rawData [byteIndex] = red; rawData [byteIndex + 1] = blue; rawData [byteIndex + 2] = green; '代码' 这个工程真的很快!所以我的问题解决了。谢谢。 :) – Robert 2012-04-04 17:19:36

+0

欢迎.............. :) – Aravindhan 2012-04-04 17:33:39

+2

我可以在任何地方找到其实施的基本示例吗?或一步一步的过程将其纳入您的项目? – 2013-01-01 05:48:07