自然饱和度”是图像整体的明亮程度,“饱和度”是图像颜色的鲜艳程度。

  “饱和度”与“色相/饱和度”命令中的“饱和度”选项效果相同,可以增加整个画面的“饱和度”,但如调节到较高数值,图像会产生色彩过饱和从而引起图像失真。 

  在GPUImage中使用GPUImageVibranceFilter来实现调整图像的自然饱和度

  片段着色

    varying highp vec2 textureCoordinate;

    uniform sampler2D inputImageTexture;
uniform lowp float vibrance; void main() {
lowp vec4 color = texture2D(inputImageTexture, textureCoordinate);
lowp float average = (color.r + color.g + color.b) / 3.0;
lowp float mx = max(color.r, max(color.g, color.b));
lowp float amt = (mx - average) * (-vibrance * 3.0);
color.rgb = mix(color.rgb, vec3(mx), amt);
gl_FragColor = color;
}

  具体应用

  

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

  效果

  

  

 

GPUImage滤镜之自然饱和度的更多相关文章

  1. iOS GPUImage 滤镜介绍

    这里直接引用官方描述: The GPUImage framework is a BSD-licensed iOS library that lets you apply GPU-accelerated ...

  2. GPUImage滤镜之锐化

    应用锐化工具可以快速聚焦模糊边缘,提高图像中某一部位的清晰度或者焦距程度,使图像特定区域的色彩更加鲜明. 在应用锐化工具时,若勾选器选项栏中的“对所有图层取样”复选框,则可对所有可见图层中的图像进行锐 ...

  3. GPUImage 滤镜头文件

    #import "GLProgram.h" // Base classes #import "GPUImageOpenGLESContext.h" #impor ...

  4. 基于GPUImage的多滤镜rtmp直播推流

    之前做过开源videocore的推流改进:1)加入了美颜滤镜; 2) 加入了librtmp替换原来过于简单的rtmpclient: 后来听朋友说,在videocore上面进行opengl修改,加入新的 ...

  5. iOS资源整理

    开发类库 http://www.code4app.com/thread-7831-1-1.html Github-iOS备忘 http://github.ibireme.com/github/list ...

  6. iOS常用第三方

    名称 作用 说明 AFNetworking 基于HTTP协议联网   SDWebImage 图片缓存和异步加载   YYWebImage 图片缓存和异步加载   Ono XML解析   Rapture ...

  7. IOS--实现滤镜效果的四种方式

    IOS–实现滤镜效果 demo地址: https://github.com/AbeDay/ios–.git 使用CIFilter来完成IOS中滤镜效果 在IOS中可以使用系统自带的方法来达到路径效果: ...

  8. 2015最新iOS学习线路图

    iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...

  9. GPUimage实时滤镜的实现

    GPUIMAGE中GPUImageStillCamera可以调用系统相机,并实现实时滤镜,但是我没有找到相机全屏的方法,望知道的说一下 GPUImageStillCamera继承自GPUImageVi ...

随机推荐

  1. VS2013 修改TFS的本地映射路径

    在源代码管理器里面 找到你的本地工作区 然后点击编辑按钮 修改本地目录

  2. 【网络编程】——windows socket 编程

    测试demo #include <winsock2.h> #include <stdio.h> #include <string.h> #include <s ...

  3. AngularJS初始化闪烁

    可以使用:ng-if和ng-cloak解决,原因见:http://www.cnblogs.com/whitewolf/p/3495822.html

  4. 聊聊IO多路复用之select、poll、epoll详解

    本文转载自: http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666538922&idx=1&sn=e6b436ef ...

  5. [转]LINQ之路系列博客导航

    分享一个学习Linq的好博客:Linq之路

  6. python-根据左右值获取城市区域编码

    def get_adcode(city): """ 根据城市获取区域编码 :param city: :return: """ db = db ...

  7. 给animator动态添加事件

    using UnityEngine; using System.Collections; public class setAnimationEvent : MonoBehaviour { public ...

  8. swift 附属脚本

    附属脚本是访问对象,集合或序列的快捷方式 struct STest{ let constValue:Int subscript(count:Int)->Int{ return count*con ...

  9. EPLAN Electric P8 2.0即将到来,着实令人期待-转caodaping

    在今年的4月份,2.0版本的EPLAN Electric P8 首次揭开其神秘面纱,见诸于世.它的展露,再次印证了EPLAN 软件平台朝着"更实用"这一方向发展,同时也证明&quo ...

  10. javascript 设计模式之观察者模式

    观察者模式又叫发布——订阅模式,顾名思义pub——sub就是被动触发的,:不要给我......,我会给你.......就是一个发布订阅的解释,实质就是对程序中的某个对象状态进行监听观察,并且在该对象发 ...