画像のモノクロ表示
画像をモノクロにすれば、白黒写真みたいなのが作れる
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インスタンスを作成している