IOS – OpenGL ES 调节图像单色 GPUImageMonochromeFilter
目錄
- 一.簡介
- 二.效果演示
- 三.源碼下載
- 四.猜你喜歡
零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 基礎(chǔ)
零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 轉(zhuǎn)場
零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 特效
零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 函數(shù)
零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES GPUImage 使用
零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES GLSL 編程
一.簡介
GPUImage 共 125 個(gè)濾鏡, 分為四類
1、Color adjustments : 31 filters , 顏色處理相關(guān)
2、Image processing : 40 filters , 圖像處理相關(guān).
3、Blending modes : 29 filters , 混合模式相關(guān).
4、Visual effects : 25 filters , 視覺效果相關(guān).
GPUImageMonochromeFilter 屬于 GPUImage 顏色處理相關(guān),用來處理圖片單色,shader 源碼如下:
/********************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:IOS – OpenGL ES 調(diào)節(jié)圖像單色 GPUImageMonochromeFilter //@Time:2022/03/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE NSString *const kGPUMonochromeFragmentShaderString = SHADER_STRING (precision lowp float;varying highp vec2 textureCoordinate;uniform sampler2D inputImageTexture;uniform float intensity;uniform vec3 filterColor;const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);void main(){//desat, then apply overlay blendlowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);float luminance = dot(textureColor.rgb, luminanceWeighting);lowp vec4 desat = vec4(vec3(luminance), 1.0);//overlaylowp vec4 outputColor = vec4((desat.r < 0.5 ? (2.0 * desat.r * filterColor.r) : (1.0 - 2.0 * (1.0 - desat.r) * (1.0 - filterColor.r))),(desat.g < 0.5 ? (2.0 * desat.g * filterColor.g) : (1.0 - 2.0 * (1.0 - desat.g) * (1.0 - filterColor.g))),(desat.b < 0.5 ? (2.0 * desat.b * filterColor.b) : (1.0 - 2.0 * (1.0 - desat.b) * (1.0 - filterColor.b))),1.0);//which is better, or are they equal?gl_FragColor = vec4( mix(textureColor.rgb, outputColor.rgb, intensity), textureColor.a);} ); #else NSString *const kGPUMonochromeFragmentShaderString = SHADER_STRING (varying vec2 textureCoordinate;uniform sampler2D inputImageTexture;uniform float intensity;uniform vec3 filterColor;const vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);void main(){//desat, then apply overlay blendvec4 textureColor = texture2D(inputImageTexture, textureCoordinate);float luminance = dot(textureColor.rgb, luminanceWeighting);vec4 desat = vec4(vec3(luminance), 1.0);//overlayvec4 outputColor = vec4((desat.r < 0.5 ? (2.0 * desat.r * filterColor.r) : (1.0 - 2.0 * (1.0 - desat.r) * (1.0 - filterColor.r))),(desat.g < 0.5 ? (2.0 * desat.g * filterColor.g) : (1.0 - 2.0 * (1.0 - desat.g) * (1.0 - filterColor.g))),(desat.b < 0.5 ? (2.0 * desat.b * filterColor.b) : (1.0 - 2.0 * (1.0 - desat.b) * (1.0 - filterColor.b))),1.0);//which is better, or are they equal?gl_FragColor = vec4( mix(textureColor.rgb, outputColor.rgb, intensity), textureColor.a);} ); #endif二.效果演示
三.源碼下載
下載地址:IOS – OpenGL ES 調(diào)節(jié)圖像單色 GPUImageMonochromeFilter
四.猜你喜歡
- IOS – OPenGL ES 設(shè)置圖像亮度 GPUImageBrightnessFilter
- IOS – OPenGL ES 調(diào)節(jié)圖像曝光度 GPUImageExposureFilter
- IOS – OpenGL ES 調(diào)節(jié)圖像對比度 GPUImageContrastFilter
- IOS – OPenGL ES 調(diào)節(jié)圖像飽和度 GPUImageSaturationFilter
- IOS – OPenGL ES 調(diào)節(jié)圖像伽馬線 GPUImageGammaFilter
- IOS – OpenGL ES 調(diào)節(jié)圖像反色 GPUImageColorInvertFilter
- IOS – OpenGL ES 調(diào)節(jié)圖像褐色 GPUImageSepiaFilter
- IOS – OpenGL ES 調(diào)節(jié)圖像灰色 GPUImageGrayscaleFilter
- IOS – OpenGL ES 調(diào)節(jié)圖像單色 GPUImageMonochromeFilter
總結(jié)
以上是生活随笔為你收集整理的IOS – OpenGL ES 调节图像单色 GPUImageMonochromeFilter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于指针释放的小领悟
- 下一篇: 符号库匹配不对的原因_中频点焊机焊接螺母