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

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的解决方案?

最佳答案

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

07-24 09:48
查看更多