目录

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

零基础 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 , 视觉效果相关.

GPUImageAmatorkaFilter 属于 GPUImage 颜色处理相关,用来处理图片 lookup 滤镜

GPUImageAmatorkaFilter 基于Amatorka的 Photoshop 动作的照片过滤器,类似 GPUImageLookupFilter;

shader 源码如下:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:IOS – OpenGL ES 设置图像滤镜 GPUImageAmatorkaFilter
//@Time:2022/04/09 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
NSString *const kGPUImageLookupFragmentShaderString = SHADER_STRING
(varying highp vec2 textureCoordinate;varying highp vec2 textureCoordinate2; // TODO: This is not useduniform sampler2D inputImageTexture;uniform sampler2D inputImageTexture2; // lookup textureuniform lowp float intensity;void main(){highp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);highp float blueColor = textureColor.b * 63.0;highp vec2 quad1;quad1.y = floor(floor(blueColor) / 8.0);quad1.x = floor(blueColor) - (quad1.y * 8.0);highp vec2 quad2;quad2.y = floor(ceil(blueColor) / 8.0);quad2.x = ceil(blueColor) - (quad2.y * 8.0);highp vec2 texPos1;texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);highp vec2 texPos2;texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);lowp vec4 newColor1 = texture2D(inputImageTexture2, texPos1);lowp vec4 newColor2 = texture2D(inputImageTexture2, texPos2);lowp vec4 newColor = mix(newColor1, newColor2, fract(blueColor));gl_FragColor = mix(textureColor, vec4(newColor.rgb, textureColor.w), intensity);}
);
#else
NSString *const kGPUImageLookupFragmentShaderString = SHADER_STRING
(varying vec2 textureCoordinate;varying vec2 textureCoordinate2; // TODO: This is not useduniform sampler2D inputImageTexture;uniform sampler2D inputImageTexture2; // lookup textureuniform float intensity;void main(){vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);float blueColor = textureColor.b * 63.0;vec2 quad1;quad1.y = floor(floor(blueColor) / 8.0);quad1.x = floor(blueColor) - (quad1.y * 8.0);vec2 quad2;quad2.y = floor(ceil(blueColor) / 8.0);quad2.x = ceil(blueColor) - (quad2.y * 8.0);vec2 texPos1;texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);vec2 texPos2;texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);vec4 newColor1 = texture2D(inputImageTexture2, texPos1);vec4 newColor2 = texture2D(inputImageTexture2, texPos2);vec4 newColor = mix(newColor1, newColor2, fract(blueColor));gl_FragColor = mix(textureColor, vec4(newColor.rgb, textureColor.w), intensity);}
);
#endif

二.效果演示

使用GPUImageAmatorkaFilter 处理图片 lookup 滤镜,如下:

原图:

GPUImageAmatorkaFilter 效果图:

三.源码下载

OpenGL ES Demo 下载地址 : IOS – OpenGL ES 设置图像滤镜 GPUImageAmatorkaFilter

四.猜你喜欢

  • 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
  • IOS – OpenGL ES 指定颜色抠图 GPUImageChromaKeyFilter
  • IOS – OpenGL ES 调节图像白平衡/色温 GPUImageWhiteBalanceFilter
  • IOS – OpenGL ES 设置图像 lookup 滤镜 GPUImageLookupFilter
  • IOS – OpenGL ES 设置图像滤镜 GPUImageAmatorkaFilter

IOS – OpenGL ES 设置图像滤镜 GPUImageAmatorkaFilter相关推荐

  1. IOS OpenGL ES GPUImage 图像Lanczos重取样模糊效果 GPUImageLanczosResamplingFilter

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

  2. IOS OpenGL ES GPUImage 图像普瑞维特(Prewitt)边缘检测 GPUImagePrewittEdgeDetectionFilter

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

  3. IOS OpenGL ES GPUImage 图像缩放 GPUImageTransformFilter

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

  4. IOS OpenGL ES GPUImage 图像Sobel边缘检测,类似漫画反色 GPUImageSobelEdgeDetectionFilter

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

  5. IOS OpenGL ES GPUImage 图像叠加 GPUImageOverlayBlendFilter

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

  6. IOS OpenGL ES GPUImage 图像混合 GPUImageNormalBlendFilter

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

  7. IOS OpenGL ES GPUImage 图像阀值素描,形成有噪点的素描 GPUImageThresholdSketchFilter

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

  8. IOS – OpenGL ES 调节图像单色 GPUImageMonochromeFilter

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

  9. IOS – OpenGL ES 调节图像色度 GPUImageHueFilter

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

最新文章

  1. 恕我直言,牛逼哄哄的MongoDB你可能只会30%
  2. 丹佛斯变频器型号说明_英威腾变频器Goodrive20系列产品型号说明及功能介绍
  3. Storm 疑难杂症。
  4. 怎么解决tomcat占用8080端口问题
  5. React Navigation (v2)
  6. C++教程:C++工程构建常用工具有哪些?
  7. Spring属性编辑器解读(转载)
  8. 相对(relative)定位和绝对(absolute)定位
  9. 【报告分享】2021母婴行业白皮书-巨量引擎(附下载)
  10. C++实现银行贷款等额本息和等额本金还款
  11. AN INTRODUCTION TO MOOS
  12. 蓝桥杯 平方和(JAVA)
  13. origin出图重合部分变色了,怎么办?
  14. YoLov3目标检测代码C++版本运行
  15. win10任务栏自动隐藏失效
  16. 开源项目之freepy自由输入法
  17. [导入]【07欧美爆笑青春性喜剧】《魅力学堂_青男涩女》【DVD中字】【15:00】
  18. 假如古代皇帝也懂负载均衡算法
  19. 艾兰岛编辑器-UI面板
  20. 华硕win10键盘失灵_win10系统下电脑键盘失灵怎么解决

热门文章

  1. 决策树信息增益|信息增益比率|基尼指数实例
  2. php Imagick库readImage()报Postscript delegate failed 解决方法(失效)
  3. 【电力电子】【2016.02】三相可控逆变电源的仿真、实现与测试
  4. 消息之IM签名(腾讯)
  5. httpClient: fail to respond
  6. linux查看清空历史命令
  7. android webview 清除历史,如何在android中清除webview历史记录
  8. 【YOLOV5-6.x讲解】模型搭建模块 models/yolo.py
  9. 基于HTML实现浪漫情人节表白代码(附源代码)
  10. 发现一神器——PngSplit、plist,png图片拆分器