IOS – OpenGL ES 调节图像色度 GPUImageHueFilter

目录

  • 一.简介
  • 二.效果演示
  • 三.源码下载
  • 二.猜你喜欢

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 特效

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage 使用

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程

一.简介

GPUImage 共 125 个滤镜, 分为四类

1、Color adjustments : 31 filters , 颜色处理相关
2、Image processing : 40 filters , 图像处理相关.
3、Blending modes : 29 filters , 混合模式相关.
4、Visual effects : 25 filters , 视觉效果相关.

GPUImageHueFilter 属于 GPUImage 颜色处理相关,用来处理图片色度, **色调角度,以度为单位,默认为 90 度,**shader 源码如下:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:IOS – OpenGL ES 调节图像色度 GPUImageHueFilter
//@Time:2022/04/01 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
NSString *const kGPUImageHueFragmentShaderString = SHADER_STRING
(precision highp float;varying highp vec2 textureCoordinate;uniform sampler2D inputImageTexture;uniform mediump float hueAdjust;const highp  vec4  kRGBToYPrime = vec4 (0.299, 0.587, 0.114, 0.0);const highp  vec4  kRGBToI     = vec4 (0.595716, -0.274453, -0.321263, 0.0);const highp  vec4  kRGBToQ     = vec4 (0.211456, -0.522591, 0.31135, 0.0);const highp  vec4  kYIQToR   = vec4 (1.0, 0.9563, 0.6210, 0.0);const highp  vec4  kYIQToG   = vec4 (1.0, -0.2721, -0.6474, 0.0);const highp  vec4  kYIQToB   = vec4 (1.0, -1.1070, 1.7046, 0.0);void main (){// Sample the input pixelhighp vec4 color   = texture2D(inputImageTexture, textureCoordinate);// Convert to YIQhighp float   YPrime  = dot (color, kRGBToYPrime);highp float   I      = dot (color, kRGBToI);highp float   Q      = dot (color, kRGBToQ);// Calculate the hue and chromahighp float   hue     = atan (Q, I);highp float   chroma  = sqrt (I * I + Q * Q);// Make the user's adjustmentshue += (-hueAdjust); //why negative rotation?// Convert back to YIQQ = chroma * sin (hue);I = chroma * cos (hue);// Convert back to RGBhighp vec4    yIQ   = vec4 (YPrime, I, Q, 0.0);color.r = dot (yIQ, kYIQToR);color.g = dot (yIQ, kYIQToG);color.b = dot (yIQ, kYIQToB);// Save the resultgl_FragColor = color;}
);
#else
NSString *const kGPUImageHueFragmentShaderString = SHADER_STRING
(varying vec2 textureCoordinate;uniform sampler2D inputImageTexture;uniform float hueAdjust;const vec4  kRGBToYPrime = vec4 (0.299, 0.587, 0.114, 0.0);const vec4  kRGBToI     = vec4 (0.595716, -0.274453, -0.321263, 0.0);const vec4  kRGBToQ     = vec4 (0.211456, -0.522591, 0.31135, 0.0);const vec4  kYIQToR   = vec4 (1.0, 0.9563, 0.6210, 0.0);const vec4  kYIQToG   = vec4 (1.0, -0.2721, -0.6474, 0.0);const vec4  kYIQToB   = vec4 (1.0, -1.1070, 1.7046, 0.0);void main (){// Sample the input pixelvec4 color   = texture2D(inputImageTexture, textureCoordinate);// Convert to YIQfloat   YPrime  = dot (color, kRGBToYPrime);float   I      = dot (color, kRGBToI);float   Q      = dot (color, kRGBToQ);// Calculate the hue and chromafloat   hue     = atan (Q, I);float   chroma  = sqrt (I * I + Q * Q);// Make the user's adjustmentshue += (-hueAdjust); //why negative rotation?// Convert back to YIQQ = chroma * sin (hue);I = chroma * cos (hue);// Convert back to RGBvec4    yIQ   = vec4 (YPrime, I, Q, 0.0);color.r = dot (yIQ, kYIQToR);color.g = dot (yIQ, kYIQToG);color.b = dot (yIQ, kYIQToB);// Save the resultgl_FragColor = color;}
);
#endif

二.效果演示

使用 GPUImageHueFilter来色调角度,以度为单位,默认为 90 度,,效果如下:

三.源码下载

OpenGL ES Demo 下载地址 : IOS – OpenGL ES 调节图像色度 GPUImageHueFilter

二.猜你喜欢

  • IOS – OPenGL ES 设置图像亮度 GPUImageBrightnessFilter
  • IOS – OPenGL ES 调节图像曝光度 GPUImageExposureFilter
  • IOS – OpenGL ES 调节图像对比度 GPUImageContrastFilter
  • IOS – OPenGL ES 调节图像饱和度 GPUImageSaturationFilter
  • IOS – OPenGL ES 调节图像伽马线 GPUImageGammaFilter
  • IOS – OpenGL ES 调节图像反色 GPUImageColorInvertFilter
  • IOS – OpenGL ES 调节图像褐色 GPUImageSepiaFilter
  • IOS – OpenGL ES 调节图像灰色 GPUImageGrayscaleFilter
  • IOS – OpenGL ES 调节图像 RGB 通道 GPUImageRGBFilter
  • IOS – OpenGL ES 调节图像不透明度 GPUImageOpacityFilter
  • IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter
  • IOS – OpenGL ES 调节图像色彩替换 GPUImageFalseColorFilter
  • GPUImage – 色彩直方图 GPUImageHistogramFilter
  • GPUImage – 色彩直方图 GPUImageHistogramGenerator
  • GPUImage – 像素平均色值 GPUImageAverageColor
  • GPUImage – 亮度平均 GPUImageLuminosity
  • IOS – OpenGL ES 调节图像色度 GPUImageHueFilter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国开发者真实现状:40 岁不做开发,算法工程师最稀缺!

戳蓝字“CSDN云计算”关注我们哦!互联网的 2018 年,注定是不平凡的一年。浩浩荡荡的美国制裁中兴事件唤醒了科技界对芯片产业的重视,倒逼了一系列芯片方面的布局和投资;互联网人口红利不断消耗,推动百度、腾讯、阿里巴…

react之生命周期(旧)组件挂载流程代码+图片

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_react生命周期&#xff08;旧&#xff09;</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div>…

React之生命周期-setState

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_react生命周期-setState</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 -…

微服务精华问答 | 在使用微服务架构时,您面临哪些挑战?

戳蓝字“CSDN云计算”关注我们哦&#xff01;过去几年来&#xff0c;“微服务架构”这个术语出现了&#xff0c;它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式。尽管这种架构风格没有确切的定义&#xff0c;但围绕业务能力&#xff0c;自动化部署&#xff0…

React之生命周期-forceUpdate

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_react生命周期-forceUpdate</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库…

女神节 | 那些奋斗在IT领域的“女神”们

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;刘丹今天就是3月8日女神节&#xff0c;在这个日子里&#xff0c;我们的视线自然要转移在女性身上&#xff0c;来看看她们的真实生活与丰富的人生经历。CSDN作为中国专业IT技术社区&#xff0c;我们此次将视线聚焦于…

React之生命周期-父组件render流程

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_react生命周期-父组件render流程</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- …

IOS – OpenGL ES 调节图像单色 GPUImageMonochromeFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

IOS – OpenGL ES 指定颜色抠图 GPUImageChromaKeyFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

要闻君说:华为“发飙”了;快手抛出了1000+社招岗位;迅雷2018年度财报:云连续三年上涨;定论!小米成立AIoT战略委员会...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。紧锣密鼓的工作转眼到了“周五时间”&#xff0c;最近圈里的大事儿还挺多&#xff0c;看看&#xff01;文/要闻君华为决定起诉美国政府。在近日举行…

IOS – OpenGL ES 调节图像白平衡/色温 GPUImageWhiteBalanceFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云生态战略首次曝光,牵手精诚中国和神州光大共建云生态

2月28日&#xff0c;北京——世纪互联蓝云媒体沟通会暨战略合作伙伴签约仪式隆重举行&#xff0c;来自上海蓝云网络科技有限公司&#xff08;以下简称世纪互联蓝云&#xff09;、精诚(中国)企业管理有限公司&#xff08;以下简称精诚中国&#xff09;和北京神州光大科技有限公司…

React之新旧生命周期对比

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>新旧react生命周期对比</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --&g…

企业应用快速跨向容器时代的正确姿势

戳蓝字“CSDN云计算”关注我们哦&#xff01;编者按&#xff1a;1月18日&#xff0c;网易云首席解决方案架构师刘超在微信群带来了主题为“企业应用快速跨向容器时代的正确姿势”的线上讲座&#xff0c;顺接上个月“云计算的前世今生”&#xff0c;为大家进一步详细解读了容器的…

IOS – OpenGL ES 设置图像 lookup 滤镜 GPUImageLookupFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

React之getDerivedStateFromProps

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>新react生命周期</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <…

云漫圈 | 如何给女朋友解释什么是HTTP

戳蓝字“CSDN云计算”关注我们哦&#xff01;文章转载自漫话编程周末一大早&#xff0c;我正在电脑前面浏览一些技术网站&#xff0c;突然女朋友大喊起来&#xff1a;哇&#xff0c;杭州又下大雪啦&#xff0c;快来看啊。我并没有理她&#xff0c;于是她跑过来拉我。&#xfff…

IOS – OpenGL ES 设置图像滤镜 GPUImageAmatorkaFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

IOS – OpenGL ES 设置图像滤镜 GPUImageSoftEleganceFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

趣挨踢 | 跳槽季,让我们一起攻克算法吧!

戳蓝字“CSDN云计算”关注我们哦&#xff01;文章转载自程序员小灰所谓金三银四跳槽季&#xff0c;去年的年终奖拿到了么&#xff1f;即使拿到了年终奖&#xff0c;也千万不要裸辞&#xff0c;毕竟今年的形式不同于往年。不过&#xff0c;虽然小灰不提倡大家裸辞&#xff0c;但…