iOS二十种超酷时尚艺术滤镜汇总【附源码】
2016-01-13 00:06
531 查看
本文总结了20种ios滤镜都是基于GPUImage的,有3种滤镜是GPUImage库中包含的,还有17种是Instagram中的经典滤镜,集成在一个项目中。使用GPUImage可以非常容易创建我们自己的滤镜效果总会有你想要的效果吧。在文章下面附源码下载
相信你也在使用滤镜吧,今天就让你见识一下滤镜实现其实也不是一件特别难的技术,下面附一些效果图。由于几种滤镜最主要的实现是一段片段着色程序,所以会进行展示
Amaro滤镜,通过FWAmaroFilter类来实现。它是Instagram应用中的经典滤镜之一,适用于任何色调暗沉的照片
amaro
效果图
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232020335-1801755691.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112231959132-795637764.png)
SoftElegance滤镜,通过GPUImageSoftEleganceFilter来实现。复古型滤镜,感觉像旧上海滩~~~
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232432116-2123092476.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232440757-1643486371.png)
MissEtikate滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232703022-175815081.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232713850-1022033814.png)
Nashville滤镜,Nashville是Instagram众多滤镜中最惊艳的一款,独特的奶昔色调赋予照片童话般的唯美感觉。适用范围:营造浪漫唯美的感觉。
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232949100-1228671673.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232925116-952670356.png)
LordKelvin滤镜。
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233233225-1116190840.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233241007-1498015436.png)
Amatorka滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233420022-1309519972.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233429366-746306235.png)
Rise滤镜,可以使人像皮肤得到很好的调整。
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233521257-1535466738.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233527632-996021966.png)
Hudson滤镜。
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234015225-1105930246.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234022038-1950491891.png)
XproII滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234119022-1514911217.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234130288-1737700892.png)
1977滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234228522-1948951601.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234236460-1236935837.png)
Valencia滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234338303-325984873.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234344319-1463353572.png)
Walden滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234503100-735805617.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234513585-1891407800.png)
Lomofi滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234727085-650136638.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234734741-1126044676.png)
Inkwell滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234821475-1779791470.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234831241-985375592.png)
Sierra滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234920241-1004501130.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234926850-2140032456.png)
Earlybird滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235152663-535036497.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235203366-2102438195.png)
Sutro滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235243960-1165367545.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235252913-1653601998.png)
Toaster滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235336522-1821100574.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235345507-740835017.png)
Brannan滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235529710-647589261.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235539710-113693977.png)
Hefe滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235557944-14988206.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235607085-739108909.png)
实现【以FWNashvilleFilter为例】
创建滤镜类,我将所有滤镜类都继承自GPUImageFilterGroup类,它允许我们所创建的类混合其他滤镜。它其实是向FWFilter1类中添加需要的输入纹理图片。
创建滤镜效果,该类主要实现滤镜的效果,包含一个片段着色程序。它是滤镜效果的具体实现
应用
下载项目
相信你也在使用滤镜吧,今天就让你见识一下滤镜实现其实也不是一件特别难的技术,下面附一些效果图。由于几种滤镜最主要的实现是一段片段着色程序,所以会进行展示
Amaro滤镜,通过FWAmaroFilter类来实现。它是Instagram应用中的经典滤镜之一,适用于任何色调暗沉的照片
NSString *const kFWAmaroShaderString = SHADER_STRING ( precision lowp float; varying highp vec2 textureCoordinate; uniform sampler2D inputImageTexture; uniform sampler2D inputImageTexture2; //blowout; uniform sampler2D inputImageTexture3; //overlay; uniform sampler2D inputImageTexture4; //map void main() { vec4 texel = texture2D(inputImageTexture, textureCoordinate); vec3 bbTexel = texture2D(inputImageTexture2, textureCoordinate).rgb; texel.r = texture2D(inputImageTexture3, vec2(bbTexel.r, texel.r)).r; texel.g = texture2D(inputImageTexture3, vec2(bbTexel.g, texel.g)).g; texel.b = texture2D(inputImageTexture3, vec2(bbTexel.b, texel.b)).b; vec4 mapped; mapped.r = texture2D(inputImageTexture4, vec2(texel.r, .16666)).r; mapped.g = texture2D(inputImageTexture4, vec2(texel.g, .5)).g; mapped.b = texture2D(inputImageTexture4, vec2(texel.b, .83333)).b; mapped.a = 1.0; gl_FragColor = mapped; } );
amaro
效果图
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232020335-1801755691.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112231959132-795637764.png)
SoftElegance滤镜,通过GPUImageSoftEleganceFilter来实现。复古型滤镜,感觉像旧上海滩~~~
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232432116-2123092476.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232440757-1643486371.png)
MissEtikate滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232703022-175815081.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232713850-1022033814.png)
Nashville滤镜,Nashville是Instagram众多滤镜中最惊艳的一款,独特的奶昔色调赋予照片童话般的唯美感觉。适用范围:营造浪漫唯美的感觉。
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232949100-1228671673.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112232925116-952670356.png)
LordKelvin滤镜。
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233233225-1116190840.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233241007-1498015436.png)
Amatorka滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233420022-1309519972.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233429366-746306235.png)
Rise滤镜,可以使人像皮肤得到很好的调整。
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233521257-1535466738.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112233527632-996021966.png)
Hudson滤镜。
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234015225-1105930246.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234022038-1950491891.png)
XproII滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234119022-1514911217.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234130288-1737700892.png)
1977滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234228522-1948951601.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234236460-1236935837.png)
Valencia滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234338303-325984873.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234344319-1463353572.png)
Walden滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234503100-735805617.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234513585-1891407800.png)
Lomofi滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234727085-650136638.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234734741-1126044676.png)
Inkwell滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234821475-1779791470.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234831241-985375592.png)
Sierra滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234920241-1004501130.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112234926850-2140032456.png)
Earlybird滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235152663-535036497.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235203366-2102438195.png)
Sutro滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235243960-1165367545.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235252913-1653601998.png)
Toaster滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235336522-1821100574.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235345507-740835017.png)
Brannan滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235529710-647589261.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235539710-113693977.png)
Hefe滤镜
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235557944-14988206.png)
![](http://images2015.cnblogs.com/blog/133128/201601/133128-20160112235607085-739108909.png)
实现【以FWNashvilleFilter为例】
创建滤镜类,我将所有滤镜类都继承自GPUImageFilterGroup类,它允许我们所创建的类混合其他滤镜。它其实是向FWFilter1类中添加需要的输入纹理图片。
@interface FWNashvilleFilter : GPUImageFilterGroup { GPUImagePicture *imageSource ; }
创建滤镜效果,该类主要实现滤镜的效果,包含一个片段着色程序。它是滤镜效果的具体实现
@interface FWFilter1 : GPUImageTwoInputFilter @end
应用
+ (UIImage *)applyNashvilleFilter:(UIImage *)image { FWNashvilleFilter *filter = [[FWNashvilleFilter alloc] init]; [filter forceProcessingAtSize:image.size]; GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image]; [pic addTarget:filter]; [pic processImage]; [filter useNextFrameForImageCapture]; return [filter imageFromCurrentFramebuffer]; }
下载项目
相关文章推荐
- iOS 9.3新功能前瞻:改善睡眠质量 让生活井井有条
- 在蜂窝教育iOS培训 成就我的无限未来
- iOS——Block笔记
- iOS - NSIndexSet和NSMutableIndexSet
- iOS - NSIndexPath
- iOS Cell异步图片加载优化缓存机制详解
- runtime探究
- 如何在iOS地图上高效的显示大量数据
- CocoaPods使用相关
- iOS纪录-类别、扩展和继承的概念
- IOS中取乱序数据最大值、最小值方法
- iOS之 Auto Layout
- 高效开发iOS系列 -- Xcode常用快捷键与技巧分享
- iOS----实现scrollView或者scrollView的子类下拉图片放大的效果
- iOS初体验---静态库
- iOS 自带的高德地图
- iOS 语音
- iOS 动画
- iOS nsdate
- iOS 记录错误信息(附 源码)