swift4--使用CoreImage框架制作图片滤镜

导入CoreImage框架,该框架提供大量高效的图像处理功能,用来对基于像素的图像进行分析,操作和特效处理

import CoreImage

遍历系统所有滤镜

//获得系统内置滤镜名称,并将其放在数组里

let builtInFilters = CIFilter.filterNames(inCategory: kCICategoryBuiltIn)

//遍历数名称
for filterName in builtInFilters {
    print(filterName)
    //根据滤镜名称,获得对应的滤镜
    if let filter = CIFilter(name: filterName) {
        //获得滤镜所有的属性
        let attributes = filter.attributes
        dump(attributes)
    }
}

 

使用

1.初始化过滤器

2.设置过滤器参数(过滤器参数和过滤器器类型是对应的,如本实例中的CIColorMonochrome对应kCIInputColorKey,kCIInputIntensityKey,kCIInputImageKey这三个key,乱用不对应key会奔溃,详细的对应关系可以在苹果开发者文档查看)

3.导出修改后的图片

guard let image = UIImage(named: "image") else { return }
let imageView = UIImageView(image: image)
imageView.frame = self.view.frame

self.view.addSubview(imageView)

//初始化一个CoreImage对象,并加载之前导入的图片
let ciImage = CIImage(image: image)

//初始化一个颜色对象(参数值在0和1之间,alpha透明度)
let color = CIColor(red: 0.8, green: 0.6, blue: 0.4, alpha: 0.4)

//初始化一个滤镜对象,并设置为单色调滤镜
let filter = CIFilter(name: "CIColorMonochrome")

//输入单色调的颜色值
filter?.setValue(color, forKey: kCIInputColorKey)

//设置单色调颜色的浓度值
filter?.setValue(1.0, forKey: kCIInputIntensityKey)

//设置单色调滤镜的图像
filter?.setValue(ciImage, forKey: kCIInputImageKey)

//获得应用单色调滤镜后的图像
let outImage = filter?.outputImage

//更该图像视图的内容为应用滤镜后的图像
imageView.image = UIImage(ciImage: outImage!)

补充:代码只示范了一种过滤器的使用,但每种过滤器都有对应的KEY来配合使用,关于这些key的介绍可以参考苹果官网说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值