GPUImage源码解读(一)

gpu gpu Sebelum masuk ke程序,unduk mengetahui spesifiksai umum dan apakah GPU,sedang digunakan atau tidak,dapat digunakan perintah: 英伟达 Berikut Adalah Penjelasan dari程序move.cu 程序move.cu adalah ilustrasi yang menggambarkan bagaimana perpindahan data dari variabel a_h ke b_h melalui GPU Cara melaukan kompilasi: Untuk melakukan kompilasi程序move.cu nvcc -o move move.cu Hasilnya阿坎Terbentuk文件移动yang bersif 立即下载
导读:

系列文章会从结构到使用,细化到每一个变量, 使用方法全有对应 DEMO.也会有相对应的技术点扩展如(AVFoundation,OpenGL shader,CAEAGLLayer)等,目前是 Objective-C 版本的,后面会有Swift版本.
GPUImage-Objective-C 官方源码

GPUImage-Swift 官方源码

GPUImage-Objective-C 添加注释说明源码

关于GPUImage

GPUImage框架是一个开源iOS类库,基于OpenGL进行图像和视频处理,借助GPU加速实现各种滤镜效果,并支持摄像头拍摄实时渲染。它具有以下特性:

  • 丰富的输入组件
    摄像头、图片、视频、OpenGL纹理、二进制数据、UIElement(UIView, CALayer)
  • 大量现成的内置滤镜(4大类)
    1). 颜色类(亮度、色度、饱和度、对比度、曲线、白平衡…)
    2). 图像类(仿射变换、裁剪、高斯模糊、毛玻璃效果…)
    3). 颜色混合类(差异混合、alpha混合、遮罩混合…)
    4). 效果类(像素化、素描效果、压花效果、球形玻璃效果…)
  • 丰富的输出组件
    UIView、视频文件、GPU纹理、二进制数据
  • 灵活的滤镜链
    滤镜效果之间可以相互串联、并联,调用管理相当灵活。
  • 接口易用
    滤镜和OpenGL资源的创建及使用都做了统一的封装,简单易用,并且内置了一个cache模块实现了framebuffer的复用。
  • 线程管理
    OpenGLContext不是多线程安全的,GPUImage创建了专门的contextQueue,所有的滤镜都会扔到统一的线程中处理。
    轻松实现自定义滤镜效果
    继承GPUImageFilter自动获得上面全部特性,无需关注上下文的环境搭建,专注于效果的核心算法实现即可。
目录结构

ps:源代码source都在同一级目录不能使用tree @^@

核心架构(待续)

GPUImage功能的实现依赖四个部分:资源管理、Sources、Filters、Outputs。核心架构用下图概括

swift-基于GPUImage做效果. 基于GPUImage做效果. 立即下载

相关推荐

GPU高性能运算之CUDA源代码

《GPU高性能计算之CUDA》书中实例源代码,经调试正常。GPU高性能计算系列丛书的第本《GPU高性能计算之CUDA》已经出版,由张舒,褚艳利,赵开勇,张钰勃所编写。GPU高性能运算之CUDA---源代码

GPUImage源码分析与使用()

有丰富的输入组件,可以处理图片、纹理、视频、二进制数据、UIElement(UIView、CALayer),可以使用GPUImage拍照、处理纹理图片、给视频或拍摄中的视频添加滤镜、添加水印可以使用UIElement。支持对大图进行处理,GPU的纹理限制是4096*4096,对于超出限制的图片,GPUImage会压缩处理导致损失图片质量,CoreImage会把图片拆解成小图处理。可以传入字符串类型,也可以传入文件类型,比如以.vsh/.fsh/.glsl等为后缀等命名的文件。

程序猿老樊的博客 1117

gpu:gpu

gpu:gpu

GPUImage源码解读(二十四)

GPUImageLookupFilter GPUImageLookupFilter 是GPUImage中的颜色查找滤镜,在般的相机应用中使用得最广泛,它的作用是通过颜色变换从而产生出新风格的图片,在philm项目中也有大量使用 LUT (Lookup Tables)即查找表 。LUT是个非常简单的数值转换表,不同的色彩输入数值“映射”到套输出数值,用来改变图像的色彩。例如:红色在LUT中可...

Philm_iOS的博客 740

GPUImage详细解析(二)

http://www.jianshu.com/p/1eea8bf8451e 解析 GPUImage详细解析() 上篇介绍的是GPUImageFramebuffer和GPUImageFilter。 简单回顾下: GPUImageFilter就是用来接收源图像,通过自定义的顶点、片元着色器来渲染新的图像,并在绘制完成后通知响应链的下个对象。GPUImageFr

xiaota00的博客 1346

OpenGL之GPUImage源码分析

在相机数据采集中,还有些小的细节问题,比如相机前置与后置摄像头的左右镜像翻转问题。在前面讲到过,GPUImage 的纹理坐标原点是位于左上角的,所以使用 TEXTURE_NO_ROTATION 的纹理坐标实质上是将图像进行了上下翻转,两次调用TEXTURE_NO_ROTATION纹理坐标时,又将图像复原了,这也就可以解释为什么滤镜个数为偶数时,需要使用 mGLTextureFlipBuffer 纹理坐标将图像再进行次翻转,而 mGLTextureBuffer 纹理坐标不需要了。

程序猿老樊的博客 771

GPUImage源码解读(二十二)

GPUImageFourInputFilter 可以接收四个帧缓存对象的输入。它的作用可以将四个帧缓存对象的输入合并成个帧缓存对象的输出。它继承自GPUImageThreeInputFilter,与GPUImageTwoInputFilter、GPUImageThreeInputFilter类似,主要增加了第四个帧缓存对象处理的相关操作。 philm gpuimage 版本没有这个类 GPUI...

Philm_iOS的博客 420

GPUImage 源码分析

GPUImage源码解读 介绍 GitHub - cats-oss/android-gpuimage: Android filters based on OpenGL (idea from GPUImage for iOS) 做图片或者视频滤镜渲染,离不开 OpenGL,而在移动平台上最令人熟知的就是 GitHub - BradLarson/GPUImage2: GPUImage 2 is ...

crazy_jack 2147

iOS GPUImage研究总结

关于GPUImage 这里直接引用官方描述:GPUImage是使用GPU处理图像的、他可以对图片、实时画面、视频进行处理。他允许你自定义滤镜、支持iOS4.0。然而,目前缺乏核心形象的些更高级的功能,比如面部检测。

Quinn's blog ! I'm glad to be here! 1万+

iOS GPUImage源码解读

前言 GPUImage是iOS上个基于OpenGL进行图像处理的开源框架,内置大量滤镜,架构灵活,可以在其基础上很轻松地实现各种图像处理功能。本文主要向大家分享项目的核心架构、源码解读及使用心得。 GPUImage有哪些特性 丰富的输入组件 摄像头、图片、视频、OpenGL纹理、二进制数据、UIElement(UIView, CALayer) 大量现成的内置滤镜(4大类) 1). 颜...

majiakun1的专栏 3610

iOS开发——GPUImage源码解析

、基本概念 GPUImage个开源的、基于openGL的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果,并且支持照相机和摄像机的实时滤镜,并且能够自定义图像滤镜。同时也很方便在原有基础上加入自己的滤镜Filter,所有滤镜是基于opengl shader(着色器)实现的,所以滤镜效果图像处理是在GPU上实现的,处理效率比较高,在iPhone6及其以上手机,可以做到实时流...

weixin_30240349的博客 376

c语言freeimage库文件,GPUImage源码解读之GLProgram

简述GLProgram是GPUImage中代表openGL ES 中的program,具有glprogram功能。其实是作者对OpenGL ES program的面向对象封装初始化- (id)initWithVertexShaderString:(NSString *)vShaderStringfragmentShaderString:(NSString *)fShaderString;- (id...

weixin_36176188的博客 303

GPUImage:原始码对GPUImage进行剖析以及尝试

GPU图像 原始码对GPUImage进行剖析以及尝试 如果你有想法和建议,欢迎加群263556662交流。 GPUImageChromaKeyBlendFilter

GPUImage源码解读()

这篇文章主要是阅读GPUImage框架中的 GLProgram、GPUImageContext 两个重要类的源码。这两个类是 GPUImage 框架的基础,里面涉及的知识也有 OpenGL ES 基础 和 多线程 基础。以下是源码内容: GLProgram GLProgram GLProgram专门处理OpenGL ES程序的创建等相关工作。 初始化方法,可以根据需要传入顶点着色...

Philm_iOS的博客 566

android 滤镜开源,Android_GPUImage 支持实时摄像头滤镜的GPUImage是iOS下个开源的基于GPU的图像处理库 - 下载 - 搜珍网...

Android例子源码支持实时摄像头滤镜的GPUImage/Android例子源码支持实时摄像头滤镜的GPUImage/.gitignoreAndroid例子源码支持实时摄像头滤镜的GPUImage/library/Android例子源码支持实时摄像头滤镜的GPUImage/library/.classpathAndroid例子源码支持实时摄像头滤镜的GPUImage/library/.gitig...

weixin_36397146的博客 184

GPUImage源码解读之GLProgram

简述 GLProgram是GPUImage中代表openGL ES 中的program,具有glprogram功能。其实是作者对OpenGL ES program的面向对象封装 初始化 - (id)initWithVertexShaderString:(NSString *)vShaderString fragmentShaderString:(NSString *)fS...

weixin_30346033的博客 168

GPUImage源码解读()

GPUImageView 从名称就可以知道GPUImageView是GPUImage框架中显示图片相关的类。GPUImageView实现了GPUImageInput协议,从而可以知道它能够接受GPUImageFramebuffer的输入。因此,常常作为响应链的终端节点,用于显示处理后的帧缓存。 - 重写静态方法 返回 CAEAGLLayer GPUImageView 是UIView的子类...

Philm_iOS的博客 500

GPUImage源码解读(二十五)

#GPUImageView 结构说明 . ├── GPUImage.xcodeproj │   ├── project.pbxproj │   ├── project.xcworkspace ├── GPUImageMac.xcodeproj │   ├── project.pbxproj │  

Philm_iOS的博客 457
上一篇: What's New in LLVM 9
下一篇: swift操作符的重载,自定义操作符
Philm_iOS
博客等级 码龄8年 74粉丝 53原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值