java - 如何将普通位图转换为单色位图android

标签 java android bitmap monochrome

嗨,我想在 Android 中将普通位图转换为单色位图,我该怎么做。我试图在网上查找但只能找到

Bitmap bmpMonochrome = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmpMonochrome);
ColorMatrix ma = new ColorMatrix();
ma.setSaturation(0);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(ma));
canvas.drawBitmap(bmpSrc, 0, 0, paint);

我想传递一个位图,并返回单色位图的字节数组。

  public static byte[] toBytes(Bitmap bitmap) {

  }

请提供任何指示或链接

R

最佳答案

您可以使用 ColorMatrix 类来实现此目的:

ImageView imgview = (ImageView)findViewById(R.id.imageView_grayscale);
imgview.setImageBitmap(bitmap);

// Apply grayscale filter
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
imgview.setColorFilter(filter);

gist 中介绍了 ClorMatrix 方法的另一个示例。 .

关于java - 如何将普通位图转换为单色位图android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58085299/

相关文章:

java - Flying Saucer 中的外部 CSS

java - Android 项目和 Android APP 上的 Jar Lib

java - switch 语句不会中断

android - Android Oreo 8.0 中 onPause 之前调用的新 Fragment 的 onResume

android - 当 Android Activity 的回调在方向更改后变为 null 时,更新回调引用的正确方法是什么

android - 图像不适合圆形 ImageView

java - 发送带有附件的电子邮件

android - 在 android 的 Google Chrome 中,如何设置 unsafely-treat-insecure-origin-as-secure

java - 调整位图大小

c# - GZipStream 和 DeflateStream 不会解压所有字节