2010-07-05 6 views
1

J'ai vu ce code sur le web:Transformer une bmp couleur en niveaux de gris:

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); 

Mes questions sont les suivantes: 1. Est- « bmp » censé être le bitmap couleur que je veux affecter? 2. Comment obtenir la valeur 0-255 de l'échelle de gris?

Merci.

Répondre

2
  1. Cela dépend de la façon dont bmp est défini (mais il semble que c'est une hypothèse correcte)
  2. gris = (0,299 * r + 0,587 * g + 0,114 * b); (à partir de here)
Questions connexes