Core Image 给图片加模糊效果

在iOS开发当中,我们有很多选择可以做半透明模糊效果,下面就是一些常见的方式或者说工具。
1. Core Image

Core Image是苹果自己的图像处理库,它的API被放在CoreImage.framework库中。
Core Image提供了大量的滤镜(Filter),在iOS上有90多种Filter. Core Image在创建Filter时是使用字符串的名字去创建的,这里有一个官方列表可以参看。

- (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur {
           CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
           CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur" 
                                        keysAndValues:kCIInputImageKey, inputImage, @"inputRadius", @(blur), nil];
           CIImage *outputImage = filter.outputImage;
           CIContext *context = [CIContext contextWithOptions:nil];
           CGImageRef outImage = [context createCGImage:outputImage fromRect:[outputImage extent]];
           UIImage *blurImage = [UIImage imageWithCGImage:outImage];
           CGImageRelease(outImage);
           return blurImage;
}

2. GPUImage

除了苹果官方提供的之外,第三方也有这方面图片处理的工具。一个叫Brad Larson的老兄就搞了一套叫做GPUImage的开源库。同样的,里面提供了很多Filter。
同样是做高斯模糊,代码上比使用Core Image的情况简单得多。

  GPUImageGaussianBlurFilter * blurFilter = [[GPUImageGaussianBlurFilter alloc] init];
  blurFilter.blurRadiusInPixels = 2.0;
  UIImage * image = [UIImage imageNamed:@"xxx"];
  UIImage *blurredImage = [blurFilter imageByFilteringImage:image];

3. vImage

vImage也是苹果推出的库,在Accelerate.framework中。
Accelerate这个framework主要是用来做数字信号处理、图像处理相关的向量、矩阵运算的库。我们可以认为我们的图像都是由向量或者矩阵数据构成的,Accelerate里既然提供了高效的数学运算API,自然就能方便我们对图像做各种各样的处理。
基于vImage我们可以根据图像的处理原理直接做模糊效果,或者使用现有的工具。UIImage+ImageEffects是个很好的图像处理库,看名字也知道是对UIImage做的分类扩展。这个工具被广泛地使用着。

UIImageView *me = [[UIImageView alloc] initWithFrame:CGRectMake(10, 480, 614 ,381)]; 
[me setImage:[[UIImage imageNamed:@"me.png"] applyBlurWithRadius:5 
                                             tintColor:[UIColor colorWithWhite:1 alpha:0.2] 
                                             saturationDeltaFactor:1.8 
                                             maskImage:nil]]; 
[self.view addSubview:me];
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS7后,半透明模糊效果得到了广泛的使用,所以iOS开发过程中经常需要用到半透明模糊效果,本文对比列举几种实现半...
    乒什么乓阅读 28,528评论 18赞 85
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,903评论 4赞 61
  • 前不久朋友圈被悼念杨绛去世的消息刷屏,我好像本能地排斥一切整齐划一的表达,所以对这种时不时疯狂蔓延滋长、不约而同热...
    墨婵娟阅读 452评论 1赞 3
  • 刚刚看完《熔炉》这部影片,拍的内容非常的充实,全片几乎无任何赘述的地方,有没有掺杂与主题无关的内容。 影片的节奏可...
    迷茫的蜗牛阅读 504评论 0赞 0
  • 纹身可以诉说你的故事,当然也可能它完全没有明确的意思(只因为你觉得好看)。纹身有时是一时冲动,有时也是很多人终其一...
    田阳阳阅读 1,034评论 0赞 2

友情链接更多精彩内容