画像のモノクロ表示

画像のモノクロ表示

画像をモノクロにすれば、白黒写真みたいなのが作れる

Bitmapのモノクロ表示は
描画用のPaintインスタンスに
ColorFilterを設定し
Canvas.drawBitmap()で描画することでできる

まずは、Bitmap画像の読み込み

loadBitmap()を定義し
画像のURIを渡せば
ContentProvider経由で取得した画像のBitmapインスタンスを返すようにする

Bitmap bitmapOriginal = loadBitmap(imageUri);

そして、モノクロ画像用のBitmapを生成

//元画像の高さ、幅の取得
int height = bitmapOriginal.getHeight();
int width = bitmapOriginal.getWidth();

//モノクロ画像用のBitmap作成
Bitmap bitmapGrayScale = Bitmap.createBitmap(width,height,Bitmap.Config.RGB_565);

そして、モノクロのカラーフィルターを設定し
Bitmapへ描画する

Canvas c = new Canvas(bitmapGrayScale);
Paint paint = new Paint();

//彩度を0に設定
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);

//グレースケールに変換されるColorFilterインスタンス設定
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);

//Bitmapの描画
c.drawBitmap(bitmapOriginal,0,0,paint);

モノクロ表示みたいに
画像の色を変更するには
ColorFilterを使えば簡単に実現できる

今回なら
ColorMatrixを作成して
setSaturation()で彩度を0に設定し
グレースケールに変換されるColorFilterインスタンスを作成している

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です