- Step 1: GpuImage 集成
implementation 'jp.co.cyberagent.android:gpuimage:2.0.4'
- Step 2: 布局中使用
在布局中加上GPUImageView,为了显示处理后的图片载体
<jp.co.cyberagent.android.gpuimage.GPUImageView
android:id="@+id/gpu_image_later"
android:layout_width="match_parent"
android:layout_height="300dp"
app:gpuimage_show_loading="false"
app:gpuimage_surface_type="texture_view"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
- Step 3: 代码中使用
1:在Activity 中,创建GPUimage 以及将原始图片展示出来
gpuImageView = findViewById(R.id.gpu_image_later);
gpuImage = new GPUImage(this);
oldBitmap=BitmapFactory.decodeResource(this.getResources(), R.mipmap.fengjin);
gpuImageView.setImage(oldBitmap);
2:获取对应想要处理的效果Filter
blic class GPUFilter {
public static final int FAST_GAUSSIAN_BLUR_FILTER = 1;//高斯模糊
public static final int BOX_BLUR_FILTER = 2;//盒装模糊
public static final int CONVOLUTION_3X3_FILTER = 3;//3x3卷积,高亮大色块变黑,加亮边缘、线条等
public static final int TEXTURE_3X3_FILTER = 4;
public static final int ADD_BLEND_FILTER = 5;// 通常用于创建两个图像之间的动画变亮模糊效果
public static final int ALPHA_BLEND_FILTER = 6; //透明混合,通常用于在背景上应用前景的透明度
public static final int BRIGHTNESS_FILTER = 7;//亮度
public static final int EXPOSURE_FILTER = 8;//曝光
public static GPUImageFilter getGPUImageFilter(int filerFlag) {
GPUImageFilter mGPUImageFilter;
switch (filerFlag) {
default:
case FAST_GAUSSIAN_BLUR_FILTER:
mGPUImageFilter = new GPUImageGaussianBlurFilter();
break;
case BOX_BLUR_FILTER:
mGPUImageFilter = new GPUImageBoxBlurFilter();
break;
case CONVOLUTION_3X3_FILTER:
mGPUImageFilter = new GPUImage3x3ConvolutionFilter();
break;
case TEXTURE_3X3_FILTER:
mGPUImageFilter = new GPUImage3x3TextureSamplingFilter();
break;
case ADD_BLEND_FILTER:
mGPUImageFilter = new GPUImageAddBlendFilter();
//.........代码过多,在文章后面会放上github 地址,可以去copy
3:通过Filter设置想要的效果展示出来
Bitmap gpuImage1 = GPUImageUtil.getGPUImage(gpuImage, oldBitmap, filter);
gpuImageView.setImage(gpuImage1);
- Step 4: 部分使用效果

图片有点小,凑合着看吧
最后附上Android 最全的效果对应工具类:
package com.example.myapplication;
import jp.co.cyberagent.android.gpuimage.filter.GPUImage3x3ConvolutionFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImage3x3TextureSamplingFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageAddBlendFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageAlphaBlendFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageBoxBlurFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageBrightnessFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageBulgeDistortionFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageCGAColorspaceFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageChromaKeyBlendFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageColorBurnBlendFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageColorDodgeBlendFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageColorInvertFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageContrastFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageCrosshatchFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageDarkenBlendFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageDifferenceBlendFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageDilationFilter;
import jp.co.cyberagent.android.gpuimage.filter.GPUImageDissolveBlendFilter;
import jp.co.cyberagent.android.gpuimage
GPUImage特效实现

最低0.47元/天 解锁文章
340





