前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >IOS – OpenGL ES 图像晕影扩散 GPUImageVignetteFilter

IOS – OpenGL ES 图像晕影扩散 GPUImageVignetteFilter

原创
作者头像
猿说编程[Python和C]
发布于 2023-04-01 00:16:31
发布于 2023-04-01 00:16:31
22200
代码可运行
举报
文章被收录于专栏:猿说编程猿说编程
运行总次数:0
代码可运行

一.简介

GPUImage 共 125 个滤镜, 分为四类

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

GPUImageVignetteFilter 属于 GPUImage 图像视觉效果相关,用来处理图片晕影扩散。shader 源码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:IOS – OpenGL ES 图像晕影扩散 GPUImageVignetteFilter
//@Time:2022/05/28 06:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
NSString *const kGPUImageVignetteFragmentShaderString = SHADER_STRING
(
 uniform sampler2D inputImageTexture;
 varying highp vec2 textureCoordinate;

 uniform lowp vec2 vignetteCenter;
 uniform lowp vec3 vignetteColor;
 uniform highp float vignetteStart;
 uniform highp float vignetteEnd;

 void main()
 {
     lowp vec4 sourceImageColor = texture2D(inputImageTexture, textureCoordinate);
     lowp float d = distance(textureCoordinate, vec2(vignetteCenter.x, vignetteCenter.y));
     lowp float percent = smoothstep(vignetteStart, vignetteEnd, d);
     gl_FragColor = vec4(mix(sourceImageColor.rgb, vignetteColor, percent), sourceImageColor.a);
 }
);
#else
NSString *const kGPUImageVignetteFragmentShaderString = SHADER_STRING
(
 uniform sampler2D inputImageTexture;
 varying vec2 textureCoordinate;

 uniform vec2 vignetteCenter;
 uniform vec3 vignetteColor;
 uniform float vignetteStart;
 uniform float vignetteEnd;

 void main()
 {
     vec4 sourceImageColor = texture2D(inputImageTexture, textureCoordinate);
     float d = distance(textureCoordinate, vec2(vignetteCenter.x, vignetteCenter.y));
     float percent = smoothstep(vignetteStart, vignetteEnd, d);
     gl_FragColor = vec4(mix(sourceImageColor.rgb, vignetteColor, percent), sourceImageColor.a);
 }
);
#endif

二.效果演示

使用**** GPUImageVignetteFilter **** 完成图片晕影扩散效果,原图:

** GPUImageVignetteFilter ** 完成图片晕影扩散效果

三.源码下载

OpenGL ES Demo 下载地址 :IOS – OpenGL ES 图像晕影扩散 GPUImageVignetteFilter

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
读书笔记《简单的逻辑学》
干程序员这行,给计算机读的编程语言,如果缺少哪怕一个分支的逻辑,计算机的执行结果绝对是超预期的,轻则跑飞,重则崩溃,所以逻辑思维严谨是程序员这个职业基本的素养;
呱牛笔记
2023/05/02
3070
如何培养技术洞见力? | TW洞见
今日洞见 本文作者:ThoughtWorks - 禚娴静。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本网协议授权的媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。 洞见是指一个人对某件事物的认知程度和他(她)自己的“分析结论”,是个人主观的看法和评价。洞见力的不同决定了一个人的思想深度和一生。 回忆一下,当我们听完
ThoughtWorks
2018/04/20
9840
如何培养技术洞见力? | TW洞见
[干货]大数据热潮的分析与审视
一、大数据的历史溯源 大数据热潮方兴未艾,但若要探究何谓大数据的问题以及大数据现象何以如此兴盛的原因,我们的眼光就不仅仅只停留在它时下的具体表征上,还要对产生它的理论根源做深入分析。大数据,冠之大于数据也。从造词法的角度看,它必然与数和数据有关。因此,如果要将大数据的历史脉络梳理清晰,可以以数和数据为线索。 1. 大数据,首先是源于数的概念 数作为人类认知自然世界的载体和产物,贯穿于人类历史发展的各个阶段。从古希腊唯物主义哲学家阿那克西曼德开始使用“本原”一词,到泰勒斯提出“万物源于水”,人类逐渐摒弃玄异
大数据文摘
2018/05/21
7320
DDD的哲学意味(上)
最近有小伙伴在Thoughtworks DDD社区中提起了有关哲学的话题,这在我这个哲学民科(下文简称“哲民”)的心中激起了阵阵涟漪。
ThoughtWorks
2023/04/28
3250
DDD的哲学意味(上)
信息——人类现代文明的奇迹
很久以前,读到吴军老师的一个观点,说现代人类和老虎狮子这类猛兽最大的优势区别是什么?有的说是会用工具,能思考,但是,真正成百上千倍地拉开人类和动物区别的,恰是那本身没有价值,却为所有能力赋能的信息。
magic2728
2022/04/02
2360
信息——人类现代文明的奇迹
NLP≠NLU,机器学习无法理解人类语言
然而,这些程序并非是用人类“自然语言“编写的,像Java、Python、C和C ++语言,始终考虑的是"机器能够轻松理解和处理吗?"
AI科技评论
2021/08/24
7820
NLP≠NLU,机器学习无法理解人类语言
赠书 | 科学的战略性非理性
文中有数据派THU福利哦 为什么科学经历了这么长的时间才出现?因为铁律看起来是一个糟糕的想法。 “认可……理论的唯一前提是它们的内容与观察到的事实相一致。” 这听起来和艾萨克·牛顿或者理查德·费曼说的话一样符合科学精神,然而这句话是亚里士多德在公元前4世纪写的。亚里士多德是一位有条理的观察者、有创新精神的理论家,也是一流的知识分子。他把理论解释现象的能力放在了首位。 那是什么阻止了他在近现代科学革命发生的2000 年前创造近现代科学呢? 通过写一部科学革命史来回答这个问题是一个很诱人的提议,我们会看到在
数据派THU
2022/08/29
2010
赠书 | 科学的战略性非理性
3个常用理论:教你如何分析用户行为!
老马的这个理论都快被用烂了,多数产品分析报告在对用户需求进行分析时都会使用老马的层次需要理论,该理论是由美国心理学家亚伯拉罕•马斯洛在《动机与个性》中提出来的,但我们多数人所熟悉的是老马的五层次需求说,即人类的需求像阶梯一样从低到高按层次分为五种,分别是:
1480
2019/05/22
1.8K0
【陆勤阅读】如何做好数据挖掘模型的9条经验总结
数据挖掘是利用业务知识从数据中发现和解释知识(或称为模式)的过程,这种知识是以自然或者人工形式创造的新知识。 当前的数据挖掘形式,是在20世纪90年代实践领域诞生的,是在集成数据挖掘算法平台发展的支撑下适合商业分析的一种形式。也许是因为数据挖掘源于实践而非 理论,在其过程的理解上不太引人注意。20世纪90年代晚期发展的CRISP-DM,逐渐成为数据挖掘过程的一种标准化过程,被越来越多的数据挖掘实践者 成功运用和遵循。 虽然CRISP-DM能够指导如何实施数据挖掘,但是它不能解释数据挖掘是什么或者为什么适合这
陆勤_数据人网
2018/02/26
5240
不同于NLP,数据驱动方法与机器学习无法攻克NLU,原因有三点
选自gradient 作者:Walid S. Saba 机器之心编译 编辑:陈萍 自然语言理解(NLU)是人工智能的核心课题之一,也被广泛认为是最困难和最具标志性的任务。近年来,机器学习虽然被广泛使用,但是却不能很好的解决自然语言理解问题,其中可能涉及很多原因,ONTOLOGIK.AI 的创始人和首席NLU科学家Walid Saba给出了自己的观点。 20 世纪 90 年代早期,一场统计学革命取代了人工智能,并在 2000 年达到顶峰,而神经网络凭借深度学习成功回归。这一经验主义转变吞噬了人工智能的所有子
机器之心
2023/03/29
2400
不同于NLP,数据驱动方法与机器学习无法攻克NLU,原因有三点
读:黎甜《结构化思维》
思维是人脑对信息有意识的反映。人与人之间拥有巨大的思维差异,两个人对同样的信息产生了完全不同的理解和行为,可以说是南辕北辙。在这个过程中,思维无疑是决定性的因素,是一切的根源。而构建结构化思维,可以让零散、无序的思维方式变得系统化、有序、经得起深入分析和推敲的思维结构,是改善思维方式的必经之路。
用户5548425
2020/06/16
1.8K0
读:黎甜《结构化思维》
为什么你应该#从现在开始就#写博客
(一)为什么你应该(从现在开始就)写博客 用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处。(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极
神无月
2018/06/25
5700
笔记|黑天鹅,如何应对不可知的未来
2.叙述谬误:我们在编造理由或者强大一种逻辑关系的情况下观察一系列事实,对事实的解释会和事实混合在一起,使事实变得容易记忆,符合道理。叙述谬误导致我们认为过去的事件更具预测性,更易被预期,比实际上更不具有随机性。
用户1278550
2019/07/10
6220
商业洞察需要的是数据思维!
商业洞察一直以来都是比较神秘的话题,如何从一堆数据中找到新的商业机会,找到满足客户的需求,在市场数据中找到新的机会点,在过去的数据中找到未来的发展趋势并对未来做出预测,在内部数据中找到内部管理的问题并发现解决问题的方案?这些都是看似神秘。
明悦数据
2020/06/01
8580
商业洞察需要的是数据思维!
怎样成为解决问题的高手(连载四)
在上一篇我们讲了系统思维——透过框架来理解世界的思维方式。这一篇我们继续学习构建框架:自下而上提炼框架。在介绍自下而上提炼框架前,我先补充一些基础、常用的思考工具。比如:逻辑思维导图、逻辑树、MECE原则、5WHY法、鱼骨图、多重原因图等。当然思考工具远不止这些,还有SWOT法、二维矩阵、复杂矩阵思考法、PDCA循环、帕累托法则等。大家可以自行百度、知乎。
黄成甲
2018/09/12
1.4K0
怎样成为解决问题的高手(连载四)
为什么说机器学习不是人工智能?
我们知道的远比我们说出来的要多得多,我们不知道的远比我们知道的要多得多,我们不知道我们不知道的远比我们不知道的要多得多……
马上科普尚尚
2020/05/11
5040
为什么说机器学习不是人工智能?
统计学是博学者的捷径、万物理论的圣杯
👆点击“博文视点Broadview”,获取更多书讯 曼哈顿学院的Mark Mills 和Peter Huber 说:“文明,就像生活一样,是一段飞离混乱的旅程,它充满苦难,永无尽头。混乱最终会占据上风,但我们的使命就是尽可能地推迟它,用尽一切的聪明才智和决心,把事情朝着相反的方向推。” 为了尽力解释这个世界,我们诉诸不同的努力:从概率到决策,从科学到哲学,从算法到心法,从认知到命运。然而,这种类比建立联系的方式有着一个根本的问题,即理性是有限的。 科学家可以利用科学工具解决很多技术问题,但却无法利用科学
博文视点Broadview
2023/04/27
4510
统计学是博学者的捷径、万物理论的圣杯
什么样的离职原因是可以被接受的?
关于离职原因,我列出五点原则,相信只需几分钟,看完这篇回答,你以后在这个问题上就所向披靡了。
红目香薰
2022/11/29
9470
人工智能与因果推理 | 中国人民大学哲学与认知科学明德讲坛
本文为中国人民大学哲学与认知科学明德讲坛第23期《人工智能与因果推理》文字稿,扫描上方海报二维码,或者点击阅读原文查看讲坛回放。
用户9861443
2022/09/01
8960
人工智能与因果推理 | 中国人民大学哲学与认知科学明德讲坛
把自己作为AI:一次试验得来的四条建议
前不久我去做体检时,一位年长的医师淡淡地问了我一句:感觉这一生过得怎么样?我第一反应愣住了,在这之前还没有人问过我这个问题。我想了几秒钟,然后几乎脱口而出:挺好的,我知道自己对什么感兴趣,自己适合做什么。但话刚说完,我感觉这样概括一生太不完整了,随后补充说,其实也经历了很多坎坷,但是我比较乐观。
小腾资讯君
2023/08/11
3020
推荐阅读
相关推荐
读书笔记《简单的逻辑学》
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验