将颜色bmp变为灰度:

时间:2010-07-05 06:49:13

标签: android

我在网上看到了这段代码:

Bitmap grayscaleBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); 

Canvas c = new Canvas(grayscaleBitmap); 
Paint p = new Paint(); 
ColorMatrix cm = new ColorMatrix(); 

cm.setSaturation(0); 
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(cm); 
p.setColorFilter(filter);  
c.drawBitmap(bmp, 0, 0, p); 

我的问题是: 1.'bmp'应该是我想要影响的颜色位图吗? 2.如何获得灰度的0-255值?

感谢。

1 个答案:

答案 0 :(得分:2)

  1. 这取决于如何定义bmp(但看起来这是一个正确的假设)
  2. 灰色=(0.299 * r + 0.587 * g + 0.114 * b); (来自here