iOS中滤镜的使用(一) 马赛克滤镜

原创 2015年07月09日 09:58:44

iOS中滤镜的使用(一)

马赛克滤镜



首先 要加载图片并转化为CIImage

CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"IMG_0160"]];

其次,创建filter滤镜

CIFilter *filter = [CIFilter filterWithName:@"CIPixellate"];
NSLog(@"%@",filter.attributes);
[filter setValue:ciImage  forKey:kCIInputImageKey];
[filter setDefaults];
CIImage *outImage = [filter           valueForKey:kCIOutputImageKey];

然后,用CIContext将滤镜中的图片渲染出来,原因,导出图片过过程中用到CGImageRef。

CIContext *context = [CIContext contextWithOptions:nil];

CGImageRef cgImage = [context createCGImage:outImage fromRect:[outImage extent]];

最后,导出图片,注意内存的释放

 UIImage *showImage = [UIImage imageWithCGImage:cgImage];

CGImageRelease(cgImage);

剩下的工作就是加载马赛克图片了

 UIImageView *imageView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, 600, 400)];
imageView.image = showImage;
imageView.center = self.view.center;
[self.view addSubview:imageView];

而Filter的属性有如下:
这里写图片描述

总的代码如下:

 //0:导入图片

    CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"IMG_0160"]];

    //1:创建filter滤镜

    CIFilter *filter = [CIFilter filterWithName:@"CIPixellate"];

    NSLog(@"%@",filter.attributes);
    [filter setValue:ciImage  forKey:kCIInputImageKey];

    [filter setDefaults];

    CIImage *outImage = [filter valueForKey:kCIOutputImageKey];

    //2:用CIContext将滤镜中的图片渲染出来

    CIContext *context = [CIContext contextWithOptions:nil];

    CGImageRef cgImage = [context createCGImage:outImage fromRect:[outImage extent]];

    //3:导出图片

    UIImage *showImage = [UIImage imageWithCGImage:cgImage];

    CGImageRelease(cgImage);

    //4:加载出来

    UIImageView *imageView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, 600, 400)];
    imageView.image = showImage;
    imageView.center = self.view.center;
    [self.view addSubview:imageView];

IOS 代码生成马赛克效果

NSData * data = UIImagePNGRepresentation(image);         //创建CIImage对象         _pCIImage = [CIImag...
  • Sunsgne
  • Sunsgne
  • 2015年07月22日 16:18
  • 1121

ios开发之人脸识别(给眼睛打上马赛克)

#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (v...
  • autom_lishun
  • autom_lishun
  • 2017年11月03日 09:16
  • 176

iOS中图片处理之马赛克算法

本文和大家分享的主要是ios图片处理中的马赛克算法相关内容,一起来看看吧,希望对大家学习ios有所帮助。   马赛克   马赛克在图片效果中应该是一种最常见的处理方式,日常生活中也几乎处处可见。前...
  • qq_32506555
  • qq_32506555
  • 2017年09月05日 20:45
  • 205

图像特效---马赛克滤镜

本文介绍马赛克滤镜效果的程序实现方法,并附上完整的DEMO下载,跟大家共享一下,希望大家喜欢。...
  • bravebean
  • bravebean
  • 2016年05月10日 21:35
  • 321

OpenCV实现马赛克和毛玻璃滤镜效果

一、马赛克 马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内随机选取的一个像素点的颜色代替,这样可以模糊细节,但是可以保留大体的轮廓。 以下OpenCV程序实现马赛克效果,通过鼠标左...
  • dcrmg
  • dcrmg
  • 2016年12月19日 22:48
  • 3682

IOS源码

可扩展iOS 弹出视图(会员pljhonglu)  iOS 下的弹出视图,支持iPhone/iPad。 本身自带了四种动画形式,如果你觉得这四种动画无法满足你的需求,可以自行扩展,只需要在自定义类...
  • JoshuaJack290
  • JoshuaJack290
  • 2015年03月23日 17:03
  • 692

iOS8 Core Image In Swift:人脸检测以及马赛克

Core Image是一个很强大的框架。它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光。 它利用GPU(或者CPU)来非常快速、甚至实时地处理图像数据和视频的帧。并且隐藏...
  • zhangao0086
  • zhangao0086
  • 2014年09月20日 09:43
  • 19424

iOS 使用GPUImage为本地视频添加滤镜

iOS视频滤镜添加,下面介绍使用GPUImage给本地视频添加滤镜
  • create_pro
  • create_pro
  • 2017年03月09日 17:52
  • 1484

ios 滤镜处理(详细滤镜介绍)及处理方法

小弟最近正在研究语音识别,,,,,如有大神赐教,,万分感激,,,目前没有办法对人物的感情 进行识别,,如有人做过音乐软件,,,类似唱吧的应用,,希望提供思路。。qq:2464294279 mai...
  • Xoxo_x
  • Xoxo_x
  • 2016年09月13日 10:48
  • 3009

iOS开发图片美白处理,图像处理,,磨皮,马赛克基于UIKit下自写算法

一:前言  1.1 :最近听了直播课程,了解了图片处理功能,然后自己突发奇想做磨皮效果。  1.2 :无demo说话不硬气,上github地址:      欢迎star,你的星星是我持续创作的动力 ...
  • horisea
  • horisea
  • 2017年04月11日 18:20
  • 1926
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中滤镜的使用(一) 马赛克滤镜
举报原因:
原因补充:

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