Androidで画像処理をしようとしています。ビットマップのピクセル情報のチャンクを取得する必要があります。そこで、ビットマップクラスメソッドgetPixels()の1つを使用しようとしました。ただし、正しく使用していないか、メソッドの動作の唯一の目的を誤解しているようです。
たとえば、任意の場所(ビットマップ座標)x、yからビットマップの10x10領域のピクセル情報を取得するために次のことを行っています。
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
int[] pixels = new int[100];
bitmap.getPixels(pixels, 0, bitmap.getWidth(), x, y, 10, 10);
そして、ArrayIndexOutOfBoundsExceptionが発生しています。私は自分が間違っていることを確認するためにグーグルで回っていますが、私は無知です。getPixels()の使用に関する例や質問のほとんどは、通常、画像全体のピクセル情報を抽出する場合のものです。したがって、int配列のサイズは通常bitmap.getWidth()* bitmap.getHeight()であり、xとyの値は0、0であり、width、heightはビットマップの幅と高さです。
BitmapのgetPixels()は、私の使用(ビットマップのサブ領域のピクセル情報のチャンクを取得する)を目的として設計されていませんか?それとも私はそれを間違って使用していますか?おそらく別のクラスを使用して、これを行う別の方法はありますか?
誰かがこれについて何か言うことがあれば、私はそれをいただければ幸いです。ありがとう。