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图片处理之涂抹马赛克解析

涂抹马赛克跟前一篇介绍的背景虚化 原理是一样的 实现原理,由上到下分三层,最下面一层为原图 3- 遮罩层(涂抹绘制层) 2- 原图马赛克后的效果图 1- 原图 涂抹的时候,如...

关于iOS开发中图片处理的一些积累(CoreGraphic、CoreImage、GPUImage、OpenGL)

Core ImageCore Image 前言 Core Graphics CoreImage GPUImage前言貌似公司最近的项目都是和图片处理有关,拍拍项目中需要将图片处理成buffer传到图像...

iOS今日头条选择框、动画效果、FlappyBird游戏源码

iOS精选源码高仿今日头条频道选择弹框超级简单的导航条管理工具EasyNavigation navigationbar评分视图,支持点击,滑动,整数小数评分心花怒放Animation仿乐视视频、腾讯视...

【Android图像处理】图像处理之-马赛克滤镜

何为马赛克?   实现的思路就是选定一定大小的矩形区域,用其中任意一点的像素来填充整个区域,这样就实现了马赛克滤镜。 代码如下: //马赛克 public static Bitmap Mas...

PS 滤镜算法原理 ——马赛克

% method : 利用邻域的任意一点代替当前邻域所有像素点 %%%% mosaic clc; clear all; addpath('E:\PhotoShop Algortihm\Imag...
  • c2a2o2
  • c2a2o2
  • 2017年04月19日 21:49
  • 207

canvas图像像素处理- 马赛克/滤镜(一)

getImageData() 从Canvas画板上取得所选区域的像素数据. putImageData() 方法函数则表示将所得到的像素数据描画到Canvas画板上形成图形。 如何在图像中参考一个像素周...

滤镜,模糊图片,类似于马赛克

  • 2015年07月27日 11:46
  • 861KB
  • 下载

ios滤镜使用

  • 2016年06月27日 19:42
  • 599KB
  • 下载

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

iOS视频滤镜添加,下面介绍使用GPUImage给本地视频添加滤镜
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中滤镜的使用(一) 马赛克滤镜
举报原因:
原因补充:

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