2012-09-28 8 views
7

私はCanvasオブジェクトを開始時に持っています。私は現在の色に応じていくつかのピクセルの色を変更する必要があります。私はそれをどのようにして適切な方法で行うことができますか?Androidキャンバスが一部のピクセルカラーを変更する

詳細:

私は自分のクラスはImageViewから伸びてきました。 onDraw(Canvas canvas)メソッドでは、私はサードパーティのクラスで何かを描画し、Canvasの結果しか持っていません。私は、現在の色に応じていくつかのピクセルの色を変更する必要があります。

+0

各ピクセルを繰り返し、現在の色を取得し、新しい色を設定する必要があります。 – user1706950

+0

私は知っている、そして、どのように? :)描画のために私は 'canvas.drawPoint(x、y、paint)'を使うことができますが、どのようにピクセルの色を取得しますか? –

+0

そして、私は適切な解決策が必要です。私は効率的かつ最速です。 –

答えて

3

android.graphics.Paintすなわち塗料

Paint paint = new Paint(); 
paint.setStyle(Paint.Style.FILL); 
paint.setColor(Color.WHITE); 

このLinkをさらに検索すると、異なる位置にある複数のピクセルを変更することができます。必要なものを達成するのに役立つ多くの機能があります。最高の運:-)

+0

いいえ、状況は異なります。私はX、Yを知らない。現在のピクセルの色だけで座標を検出できます。例えば、いくつかのピクセルが緑の場合、それを青色としてペイントします。 –

1

おそらくこれを行う方法はたくさんあります。 Canvasのアプローチをしたい場合は、Bitmapオブジェクトに描画する方法があります。オブジェクトを別のCanvasに描画することができます。 Bitmapオブジェクトには、ピクセルを変更する関数もあります。

ビットマップを使用すると、バッファにコピーを取得することができます。ピクセルの保存方法が分かっていれば、非常に高速な画像操作方法になります。キャンバス自体にそれがあるかどうか分かりません

0

私はFaster way to set a (PNG) bitmap color instead of pixel by pixelをお勧めします。これは、ビットマップカラーをピクセル単位で取得して設定するためのコードと、ピクセル単位のアプローチの代替案(回答)を提供しています。また役に立つかもしれない:Explanation of the method getPixels for a Bitmap in Android

canvas.drawPoint(X, Y, paint); 

ここでは、クラスのオブジェクトをinitalize方法です:あなたはandroid.graphics.CanvasオブジェクトcanvasX & Yはあなたが

コールが行くので、ここで、あなたはピクセルを変更したいポイントであると呼ばれていると仮定すると

関連する問題