图片滤镜 之 开源框架 GPUImage

2019-10-08  本文已影响0人  小凡凡520
二、导入方式
pod 'GPUImage'
三、简单使用
let gpupicture = GPUImagePicture(image: UIImage(named: "1.jpg")!)
//创建滤镜
let stretchDistortionFilter = GPUImageStretchDistortionFilter()
//为滤镜赋值
stretchDistortionFilter.center = CGPoint(x: 0.2, y: 0.2)
//将输入源和滤镜绑定
gpupicture?.addTarget(stretchDistortionFilter)
//为原图附上滤镜效果
gpupicture?.processImage()
//滤镜收到原图产生的一个frame,并将它作为自己的当前图像缓存
stretchDistortionFilter.useNextFrameForImageCapture()
//通过滤镜,获取当前的图像
resultImgView.image = stretchDistortionFilter.imageFromCurrentFramebuffer()
let gpupicture = GPUImagePicture(image: UIImage(named: "1.jpg")!)
//卡通描边滤镜
let toonFilter = GPUImageToonFilter()
toonFilter.threshold = 0.1
//拉升变形滤镜
let stretchDistortionFilter = GPUImageStretchDistortionFilter()
stretchDistortionFilter.center = CGPoint(x: 0.5, y: 0.5)
//将滤镜组成数组
let filters = [toonFilter,stretchDistortionFilter]
//通过pipline,将输入源,输出,滤镜,三方绑定
let pipLine = GPUImageFilterPipeline(orderedFilters: filters, input: gpupicture, output: gpuimageView)
//绘制产出最终带有复合滤镜的图像
gpupicture?.processImage()
//获取产出的UIImage图像
//此时调用useNextFrameForImageCapture的可以是任一在数组中的Filter
stretchDistortionFilter.useNextFrameForImageCapture()

resultImgView.image = pipLine?.currentFilteredFrame()
上一篇 下一篇

猜你喜欢

热点阅读