web-dev-qa-db-ja.com

ビットマップの特定のピクセルの色を変更する方法android

特定のピクセルを変更したいビットマップがあります。ビットマップから配列にデータを取得しましたが、その配列にピクセルの色を設定するにはどうすればよいですか?

ありがとう

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]);
13
turtleboy

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));
21
BHSPitMonkey