android 改变bitmap颜色
时间: 2023-08-04 07:26:11 浏览: 187
要改变 Android 中 Bitmap 的颜色,可以使用 ColorMatrix 来实现。ColorMatrix 是一个 4x5 的矩阵,其中前 4x4 的部分是用于控制颜色转换的矩阵,而最后一列用于颜色平移。
以下是一个示例代码,演示了如何将 Bitmap 的颜色从蓝色变为红色:
```java
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
int width = bitmap.getWidth();
int height = bitmap.getHeight();
// 创建一个色彩矩阵
ColorMatrix colorMatrix = new ColorMatrix(new float[]{
0, 0, 1, 0, 0,
0, 1, 0, 0, 0,
1, 0, 0, 0, 0,
0, 0, 0, 1, 0
});
// 创建一个颜色过滤器
ColorFilter colorFilter = new ColorMatrixColorFilter(colorMatrix);
// 创建一个画笔,并将颜色过滤器设置给画笔
Paint paint = new Paint();
paint.setColorFilter(colorFilter);
// 创建一个新的 Bitmap,将原始 Bitmap 绘制到新的 Bitmap 上,并使用画笔进行颜色过滤
Bitmap newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
canvas.drawBitmap(bitmap, 0, 0, paint);
```
在上述代码中,我们首先创建了一个 ColorMatrix,将红色和蓝色的通道进行了交换,然后使用这个 ColorMatrix 创建了一个 ColorFilter。接下来,我们使用这个 ColorFilter 创建了一个画笔,并将这个画笔设置给 Canvas 对象,最后在 Canvas 上绘制了原始 Bitmap,这样就得到了一个新的 Bitmap,它的颜色已经从蓝色变为红色了。
阅读全文