DDGScreenShot —图片加各类滤镜高逼格操做

写在前面

全部功能演示

imageimage

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

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

/**
     ** 图片滤镜处理篇
     - 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.

欢迎查看DDGScreenShotgit

其他功能以下

  1. (一)DDGScreenShot — 复杂屏幕截屏(如view ScrollView webView wkwebView)
  2. (二)DDGScreenShot--iOS 图片处理--多图片拼接
  3. (三)DDGScreenShot--iOS 图片裁剪,切圆角,加边框,你还用cornerRadius,还有更高级的用法
  4. (四)DDGScreenShot—图片擦除功能
  5. (五)DDGScreenShot—截取图片的任意部分github

  6. (七)DDGScreenShot —图片加高斯模糊,老电影效果web

相关文章
相关标签/搜索