本文内容参考自以下文章:KM文章一张图教你看懂GPUImage、iOS 图像处理系列 - GPUImage源码解读(一),博文GPUImage文集。文中不再详细标注引用来源。...关于GPUImage GPUImage框架是一个开源iOS类库,基于OpenGL进行图像和视频处理,借助GPU加速实现各种滤镜效果,并支持摄像头拍摄实时渲染。...GPUImage框架 GPUImage功能的实现依赖四个部分:资源管理、Sources、Filters、Outputs。核心架构用下图概括: ? 1. 资源管理 ?...GLProgram是GPUImage对OpenGL ES中的program的封装,可用vertexShader和fragmentShader创建GLProgram对象,实现自定义滤镜效果。...录制滤镜视频 下面的例子利用GPUImage录制视频、实现实时的滤镜效果渲染并将视频文件保存到本地。
ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage...使用 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color...GPUImageSolidColorGenerator 属于 GPUImage 颜色处理相关,用来处理图片纯色; /*******************************************...*****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage
从源码的角度分析、学习GPUImage和OpenGL ES,这是第一篇,介绍GPUImageFilter 和 GPUImageFramebuffer。...扩展 GPUImage的四大输入基础类,都可以作为响应链的起点。这些基础类会把图像作为纹理,传给OpenGL ES处理,然后把纹理传递给响应链的下一个对象。...这里有个GPUImage的简单工程,可以看到GPUImage的源代码。 ? 附 一个热血青年想在业余时间做更多的尝试,做一些能帮助别人也能受惠自己的事情。
ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage...使用 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color...GPUImageHistogramFilter 属于 GPUImage 颜色处理相关,用来处理图片色彩直方图,shader 源码如下: /********************************...*****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage
GPUImage 是 iOS 上一个基于 OpenGL 进行图像处理的开源框架,后来有人借鉴它的想法实现了一个 Android 版本的 GPUImage ,本文也主要对 Android 版本的 GPUImage...概要 在 GPUImage 中既有对图像进行处理的,也有对相机内容进行处理的,这里主要以相机处理为例进行分析。...在 GPUImage 的 TextureRotationUtil 类中有定义了纹理坐标,这些纹理坐标系的原点不是位于左下角进行定义的,而是位于左上角。...所以,这里可以回顾一下 OpenGL 是如何绘制矩形的,并且将纹理贴到矩形上: OpenGL 学习系列---纹理 在 GPUImage 中,GPUImageFilter 类就完成了上述的操作,它是 OpenGL...在前面讲到过,GPUImage 的纹理坐标原点是位于左上角的,所以使用 TEXTURE_NO_ROTATION 的纹理坐标实质上是将图像进行了上下翻转,两次调用TEXTURE_NO_ROTATION纹理坐标时
前言 GPUImage详细解析在GPUImage文集,在前文GPUImage详细解析(八)视频合并混音中使用了github上的开源方式实现,这篇使用GPUImage原生的GPUImageMovieComposition...self.videoComposition = videoComposition; self.audioMix = audioMix; } 3、创建GPUImageMovieComposition类,设置GPUImage...文章更新GPUImage详细解析(九)图像的输入输出和滤镜通道已经有两个月,这一篇更多是了却当时未能的想法。...GPUImage进阶的各种滤镜使用是GPUImage的核心魅力所在,目前仅是在直播中用到GPUImage的美颜功能。...在研读GPUImage源码的过程中对OpenGL ES有了更深入的学习,也发现了GPUImage的部分问题,比如说在推流过程中添加滤镜导致推流视频闪烁的现象(这个问题来自于一个简书的网友,当时的图如下)
解析 GPUImage详细解析(一) 上一篇介绍的是GPUImageFramebuffer和GPUImageFilter。...1、视频图像采集 :AVCaptureSession GPUImage使用AVFoundation框架来获取视频。 AVCaptureSession类从AV输入设备的采集数据到制定的输出。...百度百科的介绍 YUV数据格式-图文详解 GPUImage中的YUV GLProgram *yuvConversionProgram; 将YUV颜色空间转换成RGB颜色空间的GLSL。...texture); glBindTexture(GL_TEXTURE_2D, _texture); SO的详细介绍 GPUImageView GPUImageView是响应链的终点,一般用于显示GPUImage
ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage...使用 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color...GPUImageLevelsFilter 属于 GPUImage 颜色处理相关,用来处理图片色阶,色阶是表示图像亮度强弱的指数标准,图像的色彩丰满度和精细度是由色阶决定的。...*****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage
先来介绍一下,GPUImage吧! GPUImage框架是一个获得BSD许可的iOS库,可让您将GPU加速滤镜和其他效果应用于图像,实时摄像机视频和电影。...在iPhone 4S上,对于这种情况,GPUImage仅比Core Image快4倍,比CPU绑定处理快102倍。...然而,对于更复杂的操作,如更大半径的高斯模糊,Core Image目前超过GPUImage。...在iPhone 4S,GPUImage只有快4倍比核心的形象,这种情况下,和102x速度比CPU绑定的处理。然而,对于更复杂的操作,如高斯模糊半径较大,目前超过GPUImage核心形象。)...(GPUImage框架使用自动引用计数(ARC),但要支持的项目,如果添加一个子项目解释如下使用手动引用计数。
GPUImage 的部分滤镜效果展示。 ? IMG_1283.PNG ? IMG_1284.PNG ? IMG_1285.PNG ? IMG_1287.PNG ? IMG_1288.PNG ?...看效果,不是我的初衷,接下来,我将GPUImage框架进行分解讲解,可以让移动开发者,能够创造出更多的效果出来,或者是能用它的基础知识,做出更有用的产品出来。
ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage...使用 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color...GPUImageToneCurveFilter 属于 GPUImage 颜色处理相关,用来处理图片颜色 GPUImageToneCurveFilter 根据每个颜色通道的样条曲线调整图像的颜色。...*****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage
导语 : 前段时间写了篇《一张图教你读懂GPUImage》的文章简单介绍了GPUImage的核心架构。...至于括号里的“一”,主要是觉得GPUImage还有很多值得深入学习和分享的内容,后续的学习和使用过程中有新的心得体会还会继续给大家分享。...前言 GPUImage是iOS上一个基于OpenGL进行图像处理的开源框架,内置大量滤镜,架构灵活,可以在其基础上很轻松地实现各种图像处理功能。...线程管理 OpenGLContext不是多线程安全的,GPUImage创建了专门的contextQueue,所有的滤镜都会扔到统一的线程中处理。...这里就以视频拍摄组件(GPUImageVideoCamera)为例,来讲讲GPUImage是如何把每帧采样数据传入到GPU的。
前言 GPUImage是现在做滤镜最流行的开源框架。是Brad Larson在gitHub托管的一个开源项目。...在我的关于GPUImage文档翻译中,也提到了它的底层实际上是基于多个框架。...GPUImage框架是目前比较主流的一款开源的图像处理框架。有iOS版也有安卓版,也推出了Swift版。在多平台选择性上没有顾虑。...GPUImage隐藏了在iOS所用需要使用OpenGL ES的复杂代码,并用极其简单的接口以很快的速度处理图像。GPUImage的性能甚至在很多时候击败了CoreImage。...不再是.xcodeproj文件 四、你的第一个GPUImage 项目 五、效果对比 原始图片 代码黑白效果图:
目录 一.简介 二.猜你喜欢 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color adjustments : 31 filters , 颜色处理相关 2、Image processing...GPUImageAverageColor 属于 GPUImage 颜色处理相关,用来处理图片像素平均色值 通过对图像中每个像素的 RGBA 分量进行平均,处理输入图像并确定场景的平均颜色。...*****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage
于是我发现了GPUImage库。 GPUImage在github上有16304个星,哇,能有几百个星就已经很了不起了,它居然能有上万的星,可见它人气是非常旺的。...下面我们来看看 GPUImage 都能干些什么吧。 GPUImage GPUImage是一个BSD许可的IOS库,它使用GPU加速对图像,实时视频和电影做美颜,灰度等各种特效。...而GPUImage帮我们解决了这些问题,它对 OpengGL ES做了非常好的封装,我们只要调用简单的几个接口就可以做出各种特效来。...GPUImage总体结构 GPUImage使用OpenGL ES 2着色器进行图像和视频处理速度远远超过基于CPU程序做的。而且它提供了简化的Objective-C接口,隐藏了OpenGL复杂的交互。...效果对比图 依赖库 GPUImage依赖下面的几个库: CoreMedia: AVFoundation常用的功能。 CoreVideo: OpenGL ES 使用的视频基础库。
GPUImage中可以找到Sobel算子和Prewitt算子的具体实现,Sobel和Prewitt都是3x3模板的梯度运算,其模板表示如下: ?...GPUImageSobelEdgeDetectionFilter是GPUImage利用Sobel算子实现的一种边缘检测器,其运行效果如下: ?...接下来我们深入源码,看一下这样一个滤镜在GPUImage中具体是怎样实现的。...filter中的其它代码主要是一些属性设置,几乎不需要额外的GL代码调用,GPU调用的部分基本都被GPUImage封裝好了,扩展起来还是非常方便的。...GPUImage中同样可以找到关于拉普拉斯算法的具体实现GPUImageLaplacianFilter、GPUImageSharpenFilter。
导语 :billzbwang写的《iOS 图像处理系列 - GPUImage源码解读(一)》里详细地介绍了核心代码的具体实现,对GPUImage的使用者有很大的参考价值。...在GPUImage中,有一个不为大多数人所注意却又极其重要的模块GPUImageFramebufferCache。...在《iOS 图像处理系列 - GPUImage源码解读》系列的第二篇中,我就把自己对这一模块粗浅的了解分享给大家。...由此,我们可以看到,GPUImage为我们提供了一套完善的framebuffer的cache机制,从GPUImageContext的sharedFramebufferCache里取一个framebuffer...所以,GPUImage给我们实现了一套完善的framebuffer的cache机制,如果不用它而是自行创建和管理framebuffer去处理视频和大量图片时,稍有不慎就会出现crash的情况。
GPUImageView是响应链的终点,一般用于显示GPUImage的图像。 琨君的基于GPUImage的实时美颜滤镜对GPUImage实现美颜滤镜的原理和思路做了详细介绍。...本文以琨君的代码为demo,结合前两篇解析,探究美颜过程中的GPUImage实现。...GPUImage类介绍 1、GPUImageFilterGroup GPUImageFilterGroup是多个filter的集合,terminalFilter为最终的filter,initialFilters...4、GPUImageBeautifyFilter GPUImageBeautifyFilter是基于GPUImage的实时美颜滤镜中的美颜滤镜,包括GPUImageBilateralFilter、GPUImageCannyEdgeDetectionFilter...在绘制流程图的过程中,对GPUImage的响应链有了更清晰的认识。
回顾 GPUImage的基础在详细解析1~4。 这次的介绍是录制视频,添加滤镜,保存到手机。
在GPUImage详细解析(三)- 实时美颜滤镜的基础上,引入了IFlyFaceDetector类,用GPUImageUIElement来绘制人脸识别后的贴图,并用GPUImageAddBlendFilter...nonatomic,strong) UIImage * mouthMap; //面部贴图 @property (nonatomic,strong) UIImage * facialTextureMap; GPUImage...小结,在查找bug的过程,因为demo较为复杂,花费了较多时间熟悉代码;通过Xcode的工具,可以较快定位大多数GPUImage 的问题。
领取专属 10元无门槛券
手把手带您无忧上云