在Android中将位图转换为GrayScale

我是这个网站的新手,并且提出了有关Android的问题。


有什么方法可以将位图转换为灰度?我知道如何绘制灰度位图(使用画布操作:http : //www.mail-archive.com/android-developers@googlegroups.com/msg38890.html),但我确实需要使用灰色的实际位图(或至少可以在以后转换为位图的东西)。我是否必须手动实施(逐像素操作)?


我已经搜索了很多,但仍然找不到。任何人都知道一种简单/有效的方法吗?


大话西游666
浏览 508回答 3
3回答

慕侠2389804

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

HUH函数

哦,是的,确实如此。我用错了,感谢您向我指出。(很抱歉,这个无用的问题)这是结束代码(很大程度上基于所链接的内容),因为它可以帮助某人: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;}欢迎对此发表任何评论或评论。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android