[iOS]CIFilter滤镜
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.// 滤镜效果NSArray *operations = @[@"CILinearToSRGBToneCurve",@"CIPhotoEffectChrome",@"CIPhotoEffectFade",@"CIPhotoEffectInstant",@"CIPhotoEffectMono",@"CIPhotoEffectNoir",@"CIPhotoEffectProcess",@"CIPhotoEffectTonal",@"CIPhotoEffectTransfer",@"CISRGBToneCurveToLinear",@"CIVignetteEffect"];CGFloat width = self.view.frame.size.width/3;CGFloat height = self.view.frame.size.height/4;NSMutableArray *imageViews = [NSMutableArray arrayWithCapacity:0];for (int i = 0; i < [operations count]; i++){UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i%3*width, i/3*height, width, height)];imageView.image = [UIImage imageNamed:@"timg.jpeg"];[imageViews addObject:imageView];[self.view addSubview:imageView];}dispatch_async(dispatch_get_global_queue(0, 0),^{NSMutableArray *images = [NSMutableArray arrayWithCapacity:0];for (int i = 0; i < [operations count]; i++){UIImage *image = [UIImage imageNamed:@"timg.jpeg"];CIImage *cImage = [[CIImage alloc]initWithImage:image];//使用资源CIFilter *filter = [CIFilter filterWithName:operations[i]keysAndValues:kCIInputImageKey,cImage, nil];//使用默认参数 [filter setDefaults];//生成上下文CIContext*context = [CIContext contextWithOptions:nil];//滤镜生成器输出图片CIImage *outputimage = [filter outputImage];//转换为UIImageCGImageRef ref = [context createCGImage:outputimage fromRect:[outputimage extent]];UIImage *temp = [UIImage imageWithCGImage:ref];[images addObject:temp];//释放CGImageRelease(ref);}dispatch_async(dispatch_get_main_queue(), ^{for (int x = 0; x < [images count]; x++){UIImageView *imageView = imageViews[x];imageView.image = images[x];}});}); }
原图
添加滤镜后效果图
转载于:https://www.cnblogs.com/EverNight/p/7055529.html
[iOS]CIFilter滤镜相关推荐
- iOS中滤镜处理及相关内存泄漏问题的解决
iOS中滤镜处理及相关内存泄漏问题的解决 参考文章: (1)iOS中滤镜处理及相关内存泄漏问题的解决 (2)https://www.cnblogs.com/ToBeTheOne/p/5708906.h ...
- CIFilter 滤镜 ,分别有什么作用
CIFilter是Core Image框架中的一个类,它提供了许多不同的滤镜,用于对图像进行各种操作和处理.下面列举了一些常见的CIFilter滤镜及其作用: 1.CIColorControls:用于 ...
- iOS常见滤镜实现总结
在IOS中可以使用系统自带的方法来达到路径效果:需要用到的类为:CIContext, CIImage, CIFilter CIFilter实现滤镜效果的使用步骤: 1.创建图像上下文CIContex ...
- iOS滤镜系列-滤镜开发概览
概述 滤镜最早的出现应该是应用在相机镜头前实现自然光过滤和调色的镜片,然而在软件开发中更多的指的是软件滤镜,是对镜头滤镜的模拟实现.当然这种方式更加方便快捷,缺点自然就是无法还原拍摄时的真实场景,例如 ...
- iOS 生成二维码/条形码
级别:★★☆☆☆ 标签:「iOS CIFilter」「CIQRCodeGenerator」「CICode128BarcodeGenerator」「二维码加logo」 作者: Xs·H 审校: QiSh ...
- iOS黑科技之(CoreImage)静态人脸识别(一)
iOS黑科技之(CoreImage)静态人脸识别(一) 人脸识别原理简介:每一张图片都是由每一个像素点组成,而每一个像素点中又有对应的颜色值(如RGB),人的面部特征中,不同的五官,颜色值肯定存在差异 ...
- 阿里百度12个iOS 技术面试题及答案总结,希望对你有帮助!
前言 随着移动互联网科技不断的发展和创新,如今无论是公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,而面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总.下面我们一起来一下看 ...
- iOS开发如何生成标准的二维码图片
iOS开发生成标准的二维码图片 废话不多说,下面直接上代码 //使用CIFilter滤镜类生成二维码 - (UIImage *)generateQRCodeWithString:(NSString * ...
- iOS开发-定制多样式二维码
iOS开发-定制多样式二维码 二维码/条形码是按照某种特定的几何图形按一定规律在平台(一维/二维方向上)分布的黑白相间的图形纪录符号信息.使用若干个与二进制对应的几何形体来表示文字数值信息. 最常 ...
最新文章
- MySQL Cluster(MySQL 集群) 初试
- (转)Spring读书笔记-----Spring的Bean之Bean的基本概念
- JavaScript常规语法小总节
- HDU 4708 Rotation Lock Puzzle(模拟)
- indows 平台下 Go 语言的安装和环境变量设置
- JDBC连接Oracle RAC
- Eureka-提供者与消费者
- introduce of servlet and filter
- ubuntu vscode 配置字体_第五章 Ubuntu搭建ESP32开发环境(vscode)
- 建设银行房贷没扣成功会补扣吗?
- 你见过最差的算法工程师能差到什么程度?
- 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客
- PMP课程笔记:第9章 项目资源管理
- Animation动画播放
- Git如何合并分支到主干及合并主干到分支
- PQ节点-PV节点-平衡节点
- VC/MFC 从WebBrower 中获取 HTML 和文本
- 华为云对象存储服务OBS,海量存储安全可靠,让云存储更加简单
- maven项目引入Google二维码框架zxing实现二维码(支持logo图)
- Tms320c6678——多核导航模块(Multicore Navigator)
热门文章
- 12.使用default-Action配置统一访问
- 零门槛!ZBLibrary仿微信朋友圈自定义View,就是这么简单!
- RAC环境数据库重启实例
- 第二十六讲:tapestry的树状(tree)组件
- 一文了解 Kubernetes 中的服务发现
- 论文阅读04:Deep Triplet Hashing Network for Case-based Medical Image Retrieval
- 论文阅读02:基于深度学习的图像细粒度分类算法
- 3-24Pytorch与张量变形
- 不需要mysql的php博客_不用数据库,做留言板(PHP)
- 计算机时区找不到北京,系统缺少北京时区的解决办法