本文提供在android中将Color Bitmap转成GrayScale 的两种方法.
方法一:
最原始的也是最简单的,遍历彩色图片的每一个像素,然后通过重新配比RGB的方法:
//RGB[A] to Gray: Y <- 0.299 * R + 0.587 * G + 0.114 * B ,相当于0.3 * R + 0.6 * G + 0.1 * B重新配比.
//创建所要输出的灰度图片
Bitmap.Config config = Config.RGB_565;
Bitmap out = src.copy(config, true);
int R, G, B;//R G B 三色空间分别对应的值, A表示透明度
int width = src.getWidth();
int height = src.getHeight();
for(int i = 0; i < width ; i ++)
for(int j = 0; j < height ; j ++){
int color = src.getPixel(i, j);
int A = Color.alpha(color);
R = Color.red(color);
G = Color.green(color);
B = Color.blue(color);
//重新计算像素值
int Y = (int)(R * 0.3 + G * 0.6 + B * 0.1);
//设置灰度图像的像素颜色
out.setPi