DDGScreenShot —图片加各种滤镜高逼格操作

2018-05-01  本文已影响104人  _东阁堂主_

写在前面

图片加各种滤镜操作,当然苹果给开发者提供了相关的api和封装,
大部分开发者感觉这是这是晦涩难懂的,接下来就让我们来了解一下,
其实也没有那么深不可测。

整合成一个三方库,以下只是部分代码,详细代码及demo请见,github地址https://github.com/dudongge/DDGScreenShot

DDGScreenShot 所有功能演示

image image

代码如下(每一步已经解释的很详细)

/**
     ** 图片滤镜处理篇
     - image --传图片
     - filter -- 传入滤镜
     */
    public func imageFilterHandel(image: UIImage, filterName: String) -> UIImage? {
        //输入图片
        let inputImage = CIImage(image: image)
        //设置filter健值
        let filter = CIFilter(name: filterName)
        filter?.setValue(inputImage, forKey: kCIInputImageKey)
        //得到滤镜中输出图像
        let outputImage =  filter?.outputImage!
        //设置上下文
        let context: CIContext = CIContext(options: nil)
        //通过上下文绘制获取
        let cgImage = context.createCGImage(outputImage!, from: (outputImage?.extent)!)
        //得到最新的图片
        let newImage = UIImage(cgImage: cgImage!)
        return newImage
    }
    
    /**
     ** 图片滤镜处理篇
     - image --传图片
     - filter -- 传入滤镜
     - parameter completed:    异步完成回调(主线程回调)
     */
    public func async_imageFilterHandel(image: UIImage, filterName: String,completed:@escaping (UIImage?) -> ()) -> Void {
        DispatchQueue.global().async{
            let newImage = self.imageFilterHandel(image: image, filterName: filterName)
            DispatchQueue.main.async(execute: {
                completed(newImage)
            })
        }
    }
    
    //具体用法
    let newImage = DDGManage.share.imageFilterHandel(image: originalImage, filterName: "CIPhotoEffectInstant")
            self.imageView.image = newImage

结束语

当然这只是抛砖引玉,还有更高级的用法,如高斯模糊,老电影等,
此代码已经上传到githup[DDGScreenShot](https://github.com/dudongge/DDGScreenShot)
[link](https://github.com/dudongge/DDGScreenShot)
当然这只是这个库的功能的一小部分
想看更多功能,可以去github上下载,如果对您有帮助,希望您不吝给个star.

欢迎查看DDGScreenShot

其余功能如下

  1. (一)DDGScreenShot — 复杂屏幕截屏(如view ScrollView webView wkwebView)
  2. (二)DDGScreenShot--iOS 图片处理--多图片拼接
  3. (三)DDGScreenShot--iOS 图片裁剪,切圆角,加边框,你还用cornerRadius,还有更高级的用法
  4. (四)DDGScreenShot—图片擦除功能
  5. (五)DDGScreenShot—截取图片的任意部分
  6. (六)DDGScreenShot —图片加各种滤镜高逼格操作
  7. (七)DDGScreenShot —图片加高斯模糊,老电影效果
上一篇下一篇

猜你喜欢

热点阅读