0
我只需要使用藍色通道在Android中對灰度圖進行灰度處理。 我設法通過使用顏色矩陣來消除綠色和紅色通道,但是當我將該矩陣的飽和度設置爲0時,它忽略了以前對紅色和綠色通道的更改。使用顏色矩陣僅使用藍色通道將顏色位圖轉換爲灰度圖像
有沒有辦法完成我的任務?遍歷整個像素陣列不是一個選項,因爲它太慢了。
我使用這段代碼:
public Bitmap ConvertToGrayscale(Bitmap bitmap) {
int height = super.getHeight();
int width = super.getWidth();
float[] arrayForColorMatrix = new float[] {0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 0};
Bitmap.Config config = bitmap.getConfig();
Bitmap grayScaleBitmap = Bitmap.createBitmap(width, height, config);
Canvas c = new Canvas(grayScaleBitmap);
Paint paint = new Paint();
ColorMatrix matrix = new ColorMatrix(arrayForColorMatrix);
matrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
paint.setColorFilter(filter);
c.drawBitmap(bitmap, 0, 0, paint);
return grayScaleBitmap;
}