例えば以下のように、getPixelsでBitmapの配列を取り出して何かしらの変換をし、setPixelsでBitmapに戻そうとする場合を考えます。

// bmp:Bitmapインスタンス
int width = bmp.getWidth();
int height = bmp.getHeight();
bmpSize = width*height;        
int[] bmpArray = new int [bmpSize];
bmp.getPixels(bmpArray, 0, width, 0, 0, width, height);
// bmpArrayを変換する処理
// bmpArrayをBitmapに代入  
bmp.setPixels(bmpArray, 0, width, 0, 0, width, height);

 すると下記のようなエラーが出るかもしれません。

「Caused by: java.lang.IllegalStateException」

### BitmapをMutableにする必要がある

 なぜIllegalStateExceptionのエラーが出るかというと、普通のBitmapはImmutable(不変)で設定されていてBitmapを書き換えられないからです。そこで、Mutable(可変)な状態のBitmapをコピーして作る必要があります。

Bitmap bmp2 = bmp.copy(Bitmap.Config.ARGB_8888,true);
// bmp2に対してsetPixelsを実行する

 これで、IllegalStateExceptionエラーが出なくなります。

参考:android – error with setPixels – Stack Overflow