zoukankan      html  css  js  c++  java
  • 美图秀秀滤镜之对比度

      对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰度反差的大小。

      在GPUImage中通过GPUImageContrastFilter来实现

      片段着色器

     varying highp vec2 textureCoordinate;
     
     uniform sampler2D inputImageTexture;
     uniform lowp float contrast;
     
     void main()
     {
         lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
         
         gl_FragColor = vec4(((textureColor.rgb - vec3(0.5)) * contrast + vec3(0.5)), textureColor.w);
     }

    每个像素点的RGB值-0.5 乘以对比度值 然后+0.5生成新的像素点RGB

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

    效果

      

              对比度低                          对比度高

  • 相关阅读:
    JavaScript——引用类型
    react+express+mongodb搭建个人博客
    JavaScript——变量及其作用域
    CSS——盒子模型
    CSS——浮动及清除浮动
    hexo博客分支教训
    使用Node.js+Express 简易开发服务端实例
    发布Nuget包命令
    当心引用类型的“坑”
    sqlcmd相关
  • 原文地址:https://www.cnblogs.com/salam/p/5119821.html
Copyright © 2011-2022 走看看