android:用透明度转换为灰度

时间:2012-10-11 21:50:49

标签: android image grayscale

我正在尝试将我从静止调用中获得的图像转换为灰度,但是我需要保持透明度,因为图像是地图上的叠加层。我试过了:

Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
c.drawBitmap(bmpOriginal, 0, 0, paint);

但它没有保持透明度......所以,如果你们有任何想法我会很乐意测试它。

谢谢!

1 个答案:

答案 0 :(得分:3)

你的Bitmap.Config是RGB_565,没有alpha透明层。试试ARGB_8888。