特定のピクセルの色を赤に設定する方法を知りたいだけですか? x =37 y=54 で、このピクセルの色を赤に変更したいとします。どうすればいいのかわかりません。マーチング スクエア アルゴを使用して、特定のオブジェクトの周囲のポイントの値をピクセルの配列に取得しました。
3 に答える
既存ののピクセルを変更することはできませんCGImage
。CGImage
ピクセルを変更して新しいものを作成する必要があります。手順は次のとおりです。
- でを作成
CGBitmapContext
しますCGBitmapContextCreate
。 CGImage
を使用して既存のものを描画CGContextDrawImage
します。CGContextSetFillColorWithColor
とを使用してピクセルを描画しCGContextFillRect
ます。CGImage
を使用して新しいを作成しますCGBitmapContextCreateImage
。
CGContextSetFillColorWithColor
とを使用する代わりにCGContextFillRect
、でポインタを取得した直後にビットマップデータを微調整できますCGBitmapContextGetData
。あなたがそれをたくさんするつもりなら、それはより速いでしょう。
また、多くのことを行う場合は、ビットマップコンテキストを作成し、元の画像を1回だけ描画し、ビットマップコンテキストをそのままにしておくことをお勧めします。ただしCGImage
、ビットマップコンテキストから新しいものを作成することは、ボトルネックになる可能性があります。
CCSprite を使用している場合color
は、スプライトのプロパティを使用して色を変更するだけです。
mySprite.color=ccc3(123,234,12); //use whatever color values for red, green, blue you want
赤、緑、青の最大値ccc3
は 255 です。最大の場合、色はスプライトの自然な色になります。明るくすることはできませんが、これらの値を変更すると、他の色に移動するか、すべてが同じ量だけ下に変更された場合、画像が暗くなります。
純粋な赤の場合、使用ccc3(255,0,0)
あなたの質問は非常に漠然としていますが、一般的な答えは次のとおりです。
通常、ピクセルの色は 3 バイトまたは 4 バイトで表されます。
赤 - 緑 - 青 - (アルファ)
使用している SDK には、これらの値をピクセルに設定できる機能が用意されているはずです。純粋な赤色が必要な場合は、赤を 255 に設定し、その他を 0 に設定します。