zoukankan      html  css  js  c++  java
  • 美图秀秀滤镜之饱和度

      饱和度是指色彩的鲜艳程度,也称色彩的纯度。饱和度取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大;消色成分越大,饱和度越小。纯的颜色都是高度饱和的,如鲜红,鲜绿。混杂上白色,灰色或其他色调的颜色,是不饱和的颜色,如绛紫,粉红,黄褐等。完全不饱和的颜色根本没有色调,如黑白之间的各种灰色。

      在GPUImage中使用GPUImageSaturationFilter类来实现调整图像的饱和度

      片段着色

     varying highp vec2 textureCoordinate;
     
     uniform sampler2D inputImageTexture;
     uniform lowp float saturation;
     
     // Values from "Graphics Shaders: Theory and Practice" by Bailey and Cunningham
     const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);
     
     void main()
     {
        lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
        lowp float luminance = dot(textureColor.rgb, luminanceWeighting);
        lowp vec3 greyScaleColor = vec3(luminance);
        
        gl_FragColor = vec4(mix(greyScaleColor, textureColor.rgb, saturation), textureColor.w);
         
     }

       具体应用

    + (UIImage *)changeValueForSaturationFilter:(float)value image:(UIImage *)image;
    {
        GPUImageSaturationFilter *filter = [[GPUImageSaturationFilter alloc] init];
        filter.saturation = value;
        [filter forceProcessingAtSize:image.size];
        GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image];
        [pic addTarget:filter];
        
        [pic processImage];
        [filter useNextFrameForImageCapture];
        return [filter imageFromCurrentFramebuffer];
    }

      效果

       

                高饱和度                          低饱和度【黑白】

  • 相关阅读:
    tomcat安装
    卸载重安firefox
    Metasploit笔记之信息收集命令
    postgresql-9.0.18-1-linux.run启动
    ubuntu 安装自启动管理
    MySQL数据库”mysql SQL Error:1146,SQLState:42S02 “解决方法
    PE笔记之节表
    标准类型String(学习中)
    链表实现(打印元素的实现)
    C++中new和delete来创建和释放动态数组
  • 原文地址:https://www.cnblogs.com/salam/p/5119961.html
Copyright © 2011-2022 走看看