1

ビットマップの特定の領域に色を付けようとしています。画面に表示した後。現在、私は次のアプローチを使用しています。ビットマップCGContextRefとビットの 2 次元配列を表現しています。これにより、どのピクセルに色を付けるかがわかります。次に、ループがこの配列をスローし、楕円を描画します。

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を使用した解決策はありますか?

4

1 に答える 1

1

フラッド フィル アルゴリズムを使用して画像に色を付けることができます。これは非常に高速で効率的です。フラッド フィル アルゴリズムの Objective-C バージョンはこちらです。

于 2012-04-04T16:59:14.707 に答える