特定のピクセルを変更したいビットマップがあります。ビットマップから配列にデータを取得しましたが、その配列にピクセルの色を設定するにはどうすればよいですか?
ありがとう
int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()];
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
for(int i =0; i<500;i++){
//Log.e(TAG, "pixel"+i +pixels[i]);
pixels
配列のピクセルの色を設定するには、Androidの Color クラスの静的メソッドから値を取得し、それらを配列に割り当てます。完了したら、setPixels
を使用してピクセルをビットマップにコピーして戻します。
たとえば、ビットマップの最初の5行を青にするには、次のようにします。
import Android.graphics.Color;
int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()];
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
for (int i=0; i<myBitmap.getWidth()*5; i++)
pixels[i] = Color.BLUE;
myBitmap.setPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
SetPixel()メソッドを使用してピクセルバッファを設定しなくても、ビットマップオブジェクトにピクセルの色を一度に1つずつ設定することもできます。
myBitmap.setPixel(x, y, Color.rgb(45, 127, 0));