iOS二十种超酷时尚艺术滤镜汇总【附源码】

转载 2017年01月03日 10:31:23

本文总结了20种ios滤镜都是基于GPUImage的,有3种滤镜是GPUImage库中包含的,还有17种是Instagram中的经典滤镜,集成在一个项目中。使用GPUImage可以非常容易创建我们自己的滤镜效果总会有你想要的效果吧。在文章下面附源码下载

  相信你也在使用滤镜吧,今天就让你见识一下滤镜实现其实也不是一件特别难的技术,下面附一些效果图。由于几种滤镜最主要的实现是一段片段着色程序,所以会进行展示

 

maro滤镜,通过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;
 }
 );
复制代码

效果图

  

SoftElegance滤镜,通过GPUImageSoftEleganceFilter来实现。复古型滤镜,感觉像旧上海滩~~~

  

 

MissEtikate滤镜

  

Nashville滤镜,Nashville是Instagram众多滤镜中最惊艳的一款,独特的奶昔色调赋予照片童话般的唯美感觉。适用范围:营造浪漫唯美的感觉。

   

 

LordKelvin滤镜。

  

 

Amatorka滤镜

  

 

Rise滤镜,可以使人像皮肤得到很好的调整。

  

 

Hudson滤镜。

  

 

XproII滤镜

  

 

1977滤镜

  

 

Valencia滤镜

  

 

Walden滤镜

  

 

 

Lomofi滤镜

  

 

Inkwell滤镜

  

 

Sierra滤镜

  

 

Earlybird滤镜

  

 

Sutro滤镜

  

 

Toaster滤镜

  

 

Brannan滤镜

  

 

Hefe滤镜

  

 

 实现【以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二十种超酷时尚艺术滤镜汇总【附源码】

本文总结了20种ios滤镜都是基于GPUImage的,有3种滤镜是GPUImage库中包含的,还有17种是Instagram中的经典滤镜,集成在一个项目中。使用GPUImage可以非常容易创建我们自己...
  • ws1352864983
  • ws1352864983
  • 2017年07月03日 13:53
  • 271

iOS二十种超酷时尚艺术滤镜汇总

原文 http://www.cnblogs.com/salam/p/5125836.html 本文总结了20种ios滤镜都是基于GPUImage的,有3种滤镜是GPUImage库中包...
  • xiaota00
  • xiaota00
  • 2017年02月09日 14:36
  • 313

图像滤镜艺术---乐高像素拼图特效滤镜的代码实现

本文承接乐高像素拼图特效PS实现一文,给出了完整的C#代码实现,和PS效果一模一样,跟大家分享一下!...
  • Trent1985
  • Trent1985
  • 2015年12月08日 11:09
  • 3710

图像滤镜艺术---流行艺术风滤镜特效PS实现

本文介绍了一款新的滤镜特效“流行艺术风格滤镜”的PS实现过程,并将按照此过程介绍详细的C#代码实现,跟大家分享一下!...
  • Trent1985
  • Trent1985
  • 2015年12月25日 18:23
  • 2656

图像滤镜艺术---Photoshop实现Instagram Amaro滤镜特效

本文介绍使用Photoshop来实现Instagram 中Amaro滤镜实现的内容,这些内容是英文版的,对于不懂英文的,直接看PS操作图即可...
  • Trent1985
  • Trent1985
  • 2015年10月22日 10:41
  • 3070

图像滤镜艺术----Brannan滤镜

作为第一篇文章,本人将
  • Trent1985
  • Trent1985
  • 2014年10月19日 14:28
  • 1504

吐血分享!Android源码50例汇总,欢迎各位下载

源码分享
  • Sky_Monkey
  • Sky_Monkey
  • 2014年01月07日 17:57
  • 3996

图像滤镜艺术---水彩画滤镜

本文详细介绍了一款水彩画滤镜特效的算法实现,并提供了一个完整的DEMO分享给大家,希望大家喜欢!...
  • Trent1985
  • Trent1985
  • 2015年09月12日 13:08
  • 2523

图像滤镜艺术---LOMO Filter

LOMO Filter LOMO是一种概念,即强调感受、机缘,弱化摄影技巧,不确定性和随意性是LOMO最大特点。LOMO源于Lomography,LOMO相机,它原先是苏联的产物,由列宁格勒光学与机...
  • Trent1985
  • Trent1985
  • 2015年09月11日 12:38
  • 1863

iOS上用GPUImage给视频加滤镜

http://www.voidcn.com/blog/u1031/article/p-3264924.html 最近在做一个需要给已有视频加滤镜的app,不是实时滤镜,而是给已经存在的视...
  • jeffasd
  • jeffasd
  • 2016年08月01日 19:47
  • 1677
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS二十种超酷时尚艺术滤镜汇总【附源码】
举报原因:
原因补充:

(最多只允许输入30个字)