1

我尝试为位图的给定区域着色。在屏幕上显示后。目前我使用以下方法:有表示位图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);
        }
    }
 }

这解决了问题,但工作太慢。请提供任何其他想法。也许有使用石英的解决方案?

4

1 回答 1

1

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

于 2012-04-04T16:59:14.707 回答