ios滤镜

iOS滤镜系列-滤镜开发概览

≡放荡痞女 提交于 2020-01-12 03:55:40
概述 滤镜最早的出现应该是应用在相机镜头前实现自然光过滤和调色的镜片,然而在软件开发中更多的指的是软件滤镜,是对镜头滤镜的模拟实现。当然这种方式更加方便快捷,缺点自然就是无法还原拍摄时的真实场景,例如无法实现偏光镜和紫外线滤色镜的效果。今天简单介绍一下iOS滤镜开发中的正确姿势,让刚刚接触滤镜开发的朋友少走弯路。 在iOS开发中常见的滤镜开发方式大概包括:CIFilter、GPUImage、OpenCV等。 CoreImage CIFilter CIFilter存在于CoreImage框架中,它基于OpenGL着色器来处理图像(最新的已经基于Metal实现),优点当然是快,因为它可以充分利用GPU加速来处理图像渲染,同时它自身支持滤镜链,多个滤镜同时使用时迅速高效。 CIFilter目前已经支持21个分类(如下代码) 196种滤镜 : public let kCICategoryDistortionEffect: String public let kCICategoryGeometryAdjustment: String public let kCICategoryCompositeOperation: String public let kCICategoryHalftoneEffect: String public let kCICategoryColorAdjustment

iOS滤镜和贴纸功能

為{幸葍}努か 提交于 2019-11-29 15:39:13
一、iOS自带滤镜 1.CoreImage 使用苹果自带的CoreImage框架对图片进行处理,用CoreImage框架里的CIFilter对图片进行滤镜处理, 首先我们应该了解下CoreImage框架能够对图像进行那些处理和拥有哪些特效。 苹果给我们提供了将近200中滤镜效果 // 这里我们可以看到总共有多少种滤镜 NSArray *filterNames = [CIFilter filterNamesInCategory:@"CICategoryBuiltIn"]; NSLog(@"总共有%ld种滤镜效果:%@",filterNames.count,filterNames); //以一个具体分类中的滤镜信息 NSArray* filters = [CIFilter filterNamesInCategory:kCICategoryDistortionEffect]; for (NSString* filterName in filters) { NSLog(@"filter name:%@",filterName); // 我们可以通过filterName创建对应的滤镜对象 CIFilter* filter = [CIFilter filterWithName:filterName]; NSDictionary* attributes = [filter attributes]