为了账号安全,请及时绑定邮箱和手机立即绑定

在Android中将位图转换为GrayScale

在Android中将位图转换为GrayScale

大话西游666 2019-11-27 13:19:52
我是这个网站的新手,并且提出了有关Android的问题。有什么方法可以将位图转换为灰度?我知道如何绘制灰度位图(使用画布操作:http : //www.mail-archive.com/android-developers@googlegroups.com/msg38890.html),但我确实需要使用灰色的实际位图(或至少可以在以后转换为位图的东西)。我是否必须手动实施(逐像素操作)?我已经搜索了很多,但仍然找不到。任何人都知道一种简单/有效的方法吗?
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

这不是您链接的代码的全部功能吗?它需要一个彩色位图(“ bmp”),创建一个重复的位图(“ bm”),然后使用该滤镜将该彩色位图绘制为“ bm”,以将其转换为灰度。从那时起,您可以将“ bm”用作实际的灰度位图,并执行任何您想使用的位图。

您需要稍微调整一下示例(它使用的是硬编码的大小,您可能只想克隆原始位图的大小),但是除此之外,这似乎已经可以随时使用了。 ,具体取决于您的需求。


查看完整回答
反对 回复 2019-11-27
?
HUH函数

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;

}

欢迎对此发表任何评论或评论。


查看完整回答
反对 回复 2019-11-27
  • 3 回答
  • 0 关注
  • 507 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号