android bitmap 饱和度 demo,Android GPUImage实现多种图像滤镜效果
时间: 2023-10-23 14:09:43 浏览: 171
好的,针对您的第一个问题,以下是一个 Android Bitmap 饱和度的 Demo:
```java
public static Bitmap changeSaturation(Bitmap bitmap, float saturation) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
Canvas canvas = new Canvas(output);
Paint paint = new Paint();
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(saturation);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(filter);
canvas.drawBitmap(bitmap, 0, 0, paint);
return output;
}
```
这个 Demo 中使用了 `ColorMatrix` 这个类来调整饱和度,通过 `setSaturation` 方法设置饱和度的值。
对于您的第二个问题,可以使用 Android 的 GPUImage 库来实现多种图像滤镜效果。这个库可以通过 Gradle 引入:
```groovy
implementation 'jp.co.cyberagent.android:gpuimage:2.0.4'
```
然后就可以使用其中提供的各种滤镜效果了,例如:
```java
GPUImage gpuImage = new GPUImage(context);
gpuImage.setImage(bitmap);
gpuImage.setFilter(new GPUImageSepiaFilter());
Bitmap filteredBitmap = gpuImage.getBitmapWithFilterApplied();
```
这里使用了 GPUImage 提供的 Sepia 滤镜效果,通过 `setFilter` 方法设置滤镜效果,然后通过 `getBitmapWithFilterApplied` 方法获取处理后的 Bitmap。除了 Sepia 滤镜之外,还有很多其他的滤镜效果可供选择,您可以根据需要进行选择。
阅读全文