GPUImageFilter类型整理

代码没有备注,花时间整理了备注,方便快速查找对应的Filter

private static GPUImageFilter createFilterForType(final Context context, final FilterType type) {
    switch (type) {
        case CONTRAST:
            return new GPUImageContrastFilter(2.0f);                                            //对比度
        case GAMMA:
            return new GPUImageGammaFilter(2.0f);                                               //伽马线
        case INVERT:
            return new GPUImageColorInvertFilter();                                             //反色
        case PIXELATION:
            return new GPUImagePixelationFilter();                                              //像素
        case HUE:
            return new GPUImageHueFilter(90.0f);                                                //色度
        case BRIGHTNESS:
            return new GPUImageBrightnessFilter(1.5f);                                          //亮度
        case GRAYSCALE:
            return new GPUImageGrayscaleFilter();                                               //灰度
        case SEPIA:
            return new GPUImageSepiaFilter();                                                   //褐色(怀旧)
        case SHARPEN:
            GPUImageSharpenFilter sharpness = new GPUImageSharpenFilter();                      //锐化
            sharpness.setSharpness(2.0f);
            return sharpness;
        case SOBEL_EDGE_DETECTION:
            return new GPUImageSobelEdgeDetection();
        case THREE_X_THREE_CONVOLUTION:
            GPUImage3x3ConvolutionFilter convolution = new GPUImage3x3ConvolutionFilter();      //3x3卷积,高亮大色块变黑,加亮边缘、线条等
            convolution.setConvolutionKernel(new float[] {
                    -1.0f, 0.0f, 1.0f,
                    -2.0f, 0.0f, 2.0f,
                    -1.0f, 0.0f, 1.0f
            });
            return convolution;
        case EMBOSS:
            return new GPUImageEmbossFilter();                                                  //浮雕效果,带有点3d的感觉
        case POSTERIZE:
            return new GPUImagePosterizeFilter();                                               //色调分离,形成噪点效果
        case FILTER_GROUP:
            List<GPUImageFilter> filters = new LinkedList<GPUImageFilter>();
            filters.add(new GPUImageContrastFilter());
            filters.add(new GPUImageDirectionalSobelEdgeDetectionFilter());
            filters.add(new GPUImageGrayscaleFilter());
            return new GPUImageFilterGroup(filters);
        case SATURATION:
            return new GPUImageSaturationFilter(1.0f);                                          //饱和度
        case EXPOSURE:
            return new GPUImageExposureFilter(0.0f);                                            //曝光
        case HIGHLIGHT_SHADOW:
            return new GPUImageHighlightShadowFilter(0.0f, 1.0f);         //提亮阴影
        case MONOCHROME:
            return new GPUImageMonochromeFilter(1.0f, new float[]{0.6f, 0.45f, 0.3f, 1.0f});   单色
        case OPACITY:
            return new GPUImageOpacityFilter(1.0f);                                             //不透明度
        case RGB:
            return new GPUImageRGBFilter(1.0f, 1.0f, 1.0f);                 //RGB
        case WHITE_BALANCE:
            return new GPUImageWhiteBalanceFilter(5000.0f, 0.0f);            //白平横
        case VIGNETTE:
            PointF centerPoint = new PointF();
            centerPoint.x = 0.5f;
            centerPoint.y = 0.5f;
            return new GPUImageVignetteFilter(centerPoint, new float[] {0.0f, 0.0f, 0.0f}, 0.3f, 0.75f);   //晕影,形成黑色圆形边缘,突出中间图像的效果
        case TONE_CURVE:
            GPUImageToneCurveFilter toneCurveFilter = new GPUImageToneCurveFilter();            //色调曲线
            toneCurveFilter.setFromCurveFileInputStream(
                    context.getResources().openRawResource(R.raw.tone_cuver_sample));
            return toneCurveFilter;
        case BLEND_DIFFERENCE:
            return createBlendFilter(context, GPUImageDifferenceBlendFilter.class);             //差异混合,通常用于创建更多变动的颜色
        case BLEND_SOURCE_OVER:
            return createBlendFilter(context, GPUImageSourceOverBlendFilter.class);             //源混合
        case BLEND_COLOR_BURN:
            return createBlendFilter(context, GPUImageColorBurnBlendFilter.class);              //色彩加深混合
        case BLEND_COLOR_DODGE:
            return createBlendFilter(context, GPUImageColorDodgeBlendFilter.class);             //色彩减淡混合
        case BLEND_DARKEN:
            return createBlendFilter(context, GPUImageDarkenBlendFilter.class);                 //加深混合,通常用于重叠类型
        case BLEND_DISSOLVE:
            return createBlendFilter(context, GPUImageDissolveBlendFilter.class);               //溶解
        case BLEND_EXCLUSION:
            return createBlendFilter(context, GPUImageExclusionBlendFilter.class);              //排除混合
        case BLEND_HARD_LIGHT:
            return createBlendFilter(context, GPUImageHardLightBlendFilter.class);              //强光混合,通常用于创建阴影效果
        case BLEND_LIGHTEN:
            return createBlendFilter(context, GPUImageLightenBlendFilter.class);                //减淡混合,通常用于重叠类型
        case BLEND_ADD:
            return createBlendFilter(context, GPUImageAddBlendFilter.class);                    //通常用于创建两个图像之间的动画变亮模糊效果
        case BLEND_DIVIDE:
            return createBlendFilter(context, GPUImageDivideBlendFilter.class);                 //通常用于创建两个图像之间的动画变暗模糊效果
        case BLEND_MULTIPLY:
            return createBlendFilter(context, GPUImageMultiplyBlendFilter.class);               //通常用于创建阴影和深度效果
        case BLEND_OVERLAY:
            return createBlendFilter(context, GPUImageOverlayBlendFilter.class);                //叠加,通常用于创建阴影效果
        case BLEND_SCREEN:
            return createBlendFilter(context, GPUImageScreenBlendFilter.class);                 //屏幕包裹,通常用于创建亮点和镜头眩光
        case BLEND_ALPHA:
            return createBlendFilter(context, GPUImageAlphaBlendFilter.class);                  //透明混合,通常用于在背景上应用前景的透明度
        case BLEND_COLOR:
            return createBlendFilter(context, GPUImageColorBlendFilter.class);                  //颜色混合
        case BLEND_HUE:
            return createBlendFilter(context, GPUImageHueBlendFilter.class);                    //色调混合
        case BLEND_SATURATION:
            return createBlendFilter(context, GPUImageSaturationBlendFilter.class);             //饱和度混合
        case BLEND_LUMINOSITY:
            return createBlendFilter(context, GPUImageLuminosityBlendFilter.class);             //光度混合
        case BLEND_LINEAR_BURN:
            return createBlendFilter(context, GPUImageLinearBurnBlendFilter.class);             //线性混合
        case BLEND_SOFT_LIGHT:
            return createBlendFilter(context, GPUImageSoftLightBlendFilter.class);              //柔光混合
        case BLEND_SUBTRACT:
            return createBlendFilter(context, GPUImageSubtractBlendFilter.class);               //差值混合,通常用于创建两个图像之间的动画变暗模糊效果
        case BLEND_CHROMA_KEY:
            return createBlendFilter(context, GPUImageChromaKeyBlendFilter.class);              //色度键混合
        case BLEND_NORMAL:
            return createBlendFilter(context, GPUImageNormalBlendFilter.class);                 //正常

        case LOOKUP_AMATORKA:
            GPUImageLookupFilter amatorka = new GPUImageLookupFilter();                         //lookup 色彩调整
            amatorka.setBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.lookup_amatorka));
            return amatorka;
        case GAUSSIAN_BLUR:
            return new GPUImageGaussianBlurFilter();                                            //高斯模糊
        case CROSSHATCH:
            return new GPUImageCrosshatchFilter();                                              //交叉线阴影,形成黑白网状画面
        case BOX_BLUR:
            return new GPUImageBoxBlurFilter();                                                 //盒状模糊
        case CGA_COLORSPACE:
            return new GPUImageCGAColorspaceFilter();                                           //CGA色彩滤镜,形成黑、浅蓝、紫色块的画面
        case DILATION:
            return new GPUImageDilationFilter();                                                //扩展边缘模糊,变黑白
        case KUWAHARA:
            return new GPUImageKuwaharaFilter();                                                //桑原(Kuwahara)滤波,水粉画的模糊效果;处理时间比较长,慎用
        case RGB_DILATION:
            return new GPUImageRGBDilationFilter();                                             //RGB扩展边缘模糊,有色彩
        case SKETCH:
            return new GPUImageSketchFilter();                                                   //素描
        case TOON:
            return new GPUImageToonFilter();                                                     //卡通效果(黑色粗线描边)
        case SMOOTH_TOON:
            return new GPUImageSmoothToonFilter();                                               //相比上面的效果更细腻,上面是粗旷的画风

        case BULGE_DISTORTION:
            return new GPUImageBulgeDistortionFilter();                                         //凸起失真,鱼眼效果
        case GLASS_SPHERE:
            return new GPUImageGlassSphereFilter();                                             //水晶球效果
        case HAZE:
            return new GPUImageHazeFilter();                                                    //朦胧加暗
        case LAPLACIAN:
            return new GPUImageLaplacianFilter();
        case NON_MAXIMUM_SUPPRESSION:
            return new GPUImageNonMaximumSuppressionFilter();                                   //非最大抑制,只显示亮度最高的像素,其他为黑
        case SPHERE_REFRACTION:
            return new GPUImageSphereRefractionFilter();                                        //球形折射,图形倒立
        case SWIRL:
            return new GPUImageSwirlFilter();                                                   //漩涡,中间形成卷曲的画面
        case WEAK_PIXEL_INCLUSION:
            return new GPUImageWeakPixelInclusionFilter();                                      //像素融合
        case FALSE_COLOR:
            return new GPUImageFalseColorFilter();                                              //色彩替换(替换亮部和暗部色彩)G
        case COLOR_BALANCE:
            return new GPUImageColorBalanceFilter();                                            //色彩平衡
        case LEVELS_FILTER_MIN:
            GPUImageLevelsFilter levelsFilter = new GPUImageLevelsFilter();                     //色阶
            levelsFilter.setMin(0.0f, 3.0f, 1.0f);
            return levelsFilter;
        case HALFTONE:
            return new GPUImageHalftoneFilter();                                                //点染,图像黑白化,由黑点构成原图的大致图形

        case BILATERAL_BLUR:
            return new GPUImageBilateralFilter();                                               //双边模糊

        case TRANSFORM2D:
            return new GPUImageTransformFilter();                                               //形状变化

        default:
            throw new IllegalStateException("No filter of that type!");
    }

}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenhuakang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值