2010-07-05 123 views
1

我已经看到了网络上的验证码转动色BMP为灰度:

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值?

谢谢。

回答

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