3 回答

TA贡献1719条经验 获得超6个赞
这不是您链接的代码的全部功能吗?它需要一个彩色位图(“ bmp”),创建一个重复的位图(“ bm”),然后使用该滤镜将该彩色位图绘制为“ bm”,以将其转换为灰度。从那时起,您可以将“ bm”用作实际的灰度位图,并执行任何您想使用的位图。
您需要稍微调整一下示例(它使用的是硬编码的大小,您可能只想克隆原始位图的大小),但是除此之外,这似乎已经可以随时使用了。 ,具体取决于您的需求。

TA贡献1836条经验 获得超4个赞
哦,是的,确实如此。我用错了,感谢您向我指出。(很抱歉,这个无用的问题)这是结束代码(很大程度上基于所链接的内容),因为它可以帮助某人:
public Bitmap toGrayscale(Bitmap bmpOriginal)
{
int width, height;
height = bmpOriginal.getHeight();
width = bmpOriginal.getWidth();
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
c.drawBitmap(bmpOriginal, 0, 0, paint);
return bmpGrayscale;
}
欢迎对此发表任何评论或评论。
- 3 回答
- 0 关注
- 507 浏览
添加回答
举报