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