使用画笔描边将ColorFilter应用于位图

时间:2015-10-04 16:42:53

标签: android canvas bitmap

我想使用画笔笔划将灰度效果应用于位图,即用户可以使用画笔将灰度效果应用于位图的细节区域,如下所示:

Gray scale effect with strokes

我使用canvas.drawBitmap(...)方法在视图上显示位图。我学会了使用路径和绘图实例在位图上绘制笔触,我只想将灰度效果应用于绘制笔刷笔迹的位图。

我的Paint对象定义为:

Paint paint = new Paint();

paint.setAntiAlias(true);
paint.setStyle(this.paintStyle);
paint.setStrokeWidth(this.paintStrokeWidth);
paint.setStrokeCap(this.lineCap);
paint.setDither(true);
paint.setStrokeJoin(Paint.Join.MITER); 

ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0);

paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
paint.setAlpha(255);

但它没有画出任何笔画。如果我删除paint.setColorFilter(...)而改为使用paint.setColor(...),那么我可以在位图上看到笔画。  我尝试使用paint.setXferMode(...)但它没有用。

在我的视图中,onDraw()使用了

 canvas.drawPath(path, paint);

有人可以指出我正确的方向吗?提前谢谢!

0 个答案:

没有答案