美文网首页
DDGScreenShot —图片加各种滤镜高逼格操作

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

作者: _东阁堂主_ | 来源:发表于2018-05-01 21:37 被阅读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 —图片加高斯模糊,老电影效果

    相关文章

      网友评论

          本文标题:DDGScreenShot —图片加各种滤镜高逼格操作

          本文链接:https://www.haomeiwen.com/subject/rbvfrftx.html