Canvas
開始時にオブジェクトがあります。現在の色に応じて、いくつかのピクセルの色を変更する必要があります。どうすれば適切な方法でそれを行うことができますか?
詳細:
私は自分のクラスをから拡張していImageView
ます。メソッドではonDraw(Canvas canvas)
、サードパーティのクラスで何かを描画Canvas
し、結果のあるオブジェクトのみを使用します。その後、現在の色に応じていくつかのピクセルの色を変更する必要があります。
Canvas
開始時にオブジェクトがあります。現在の色に応じて、いくつかのピクセルの色を変更する必要があります。どうすれば適切な方法でそれを行うことができますか?
詳細:
私は自分のクラスをから拡張していImageView
ます。メソッドではonDraw(Canvas canvas)
、サードパーティのクラスで何かを描画Canvas
し、結果のあるオブジェクトのみを使用します。その後、現在の色に応じていくつかのピクセルの色を変更する必要があります。
android.graphics.Canvas
と呼ばれるオブジェクトがcanvas
あり、X
&Y
がピクセルを変更したいポイントであると仮定すると 、ここに行きます
電話 :
canvas.drawPoint(X, Y, paint);
クラスのオブジェクト、android.graphics.Paint
つまりペイントを初期化する方法は次のとおりです。
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
このリンクでさらに検索して、さまざまな位置で複数のピクセルを変更します。目的を達成するのに役立つ多くの機能があります。幸運 :-)
これを行うには、おそらく12の方法があります。Canvasアプローチを実行する場合は、ビットマップオブジェクトに描画する方法があります。その後、オブジェクトを別のキャンバスに描画できます。Bitmapオブジェクトには、ピクセルを変更する機能もあります。
ビットマップを使用すると、コピーをバッファに取り込むこともできます。ピクセルの保存方法を知っている場合は、画像操作の非常に高速な方法になります。Canvas自体にそれがあるかどうかはわかりません
ピクセルごとではなく、(PNG)ビットマップカラーを設定するためのより高速な方法を検討することをお勧めします。ピクセルごとにビットマップの色を取得および設定するためのコード(質問内)と、ピクセルごとのアプローチの代替案(回答内)があります。また、おそらく役立つ:AndroidのビットマップのメソッドgetPixelsの説明。