美文网首页
DDGScreenShot—图片擦除功能

DDGScreenShot—图片擦除功能

作者: _东阁堂主_ | 来源:发表于2018-05-01 21:34 被阅读43次

写在前面

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

DDGScreenShot 所有功能演示

image image

图片擦除功能,也是运用图片的绘制功能,
将图片绘制后,拿到相应的图片。当然,有一涨底图更明显

实现代码如下

/**
     ** 用手势擦除图片
     - imageView --传图片
     - bgView --截图背景
     */
    public func clearImage(imageView: UIImageView?, rect: CGRect) -> UIImage? {
        if imageView == nil {
            return nil
        }
        //开启一个位图上下文
        UIGraphicsBeginImageContextWithOptions((imageView?.bounds.size)!, false, 0.0)
        //把ImageView内容渲染到上下文当中
        let imageCtx = UIGraphicsGetCurrentContext()
        imageView?.layer.render(in: imageCtx!)
        //擦除上下文当中某一块区域
        imageCtx!.clear(rect)
        //得到新图片
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        //关闭上下文
        UIGraphicsEndImageContext()

        return newImage
    }
    
    ### 当然你也可以把图片绘制过程放入子线程中,再次就不列举了

具体用法

   //底部图片
    private lazy var bottomImageView: UIImageView = {
        let imageView = UIImageView()
        imageView.image = UIImage(named: "image")
        imageView.frame = CGRect(x: 0, y: 100, width: width, height: width)
        self.view.addSubview(imageView)
        imageView.isUserInteractionEnabled = true
        return imageView
    }()
    //要擦除的图片
    private lazy var clearImageView: UIImageView = {
        let imageView = UIImageView()
        imageView.image = UIImage(named: "logo")
        imageView.frame = CGRect(x: 0, y: 100, width: width, height: width)
        imageView.isUserInteractionEnabled = true
        self.view.addSubview(imageView)
        return imageView
    }()
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.white
        self.bottomImageView.isUserInteractionEnabled = false
        let pan = UIPanGestureRecognizer(target: self, action: #selector(DDGClearImageView.clearPan(pan:)))
        self.clearImageView.addGestureRecognizer(pan)
    }
    @objc func clearPan(pan: UIPanGestureRecognizer) {
        //获取当前手指的点
        let imageView = pan.view as! UIImageView
        let clearPan = pan.location(in: imageView)
        //擦除区域的大小
        let rect = CGRect(x: clearPan.x - 15, y: clearPan.y - 15, width: 30, height: 30)
        let newImage = DDGManage.share.clearImage(imageView: imageView, rect: rect)
        
        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—图片擦除功能

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

  • 图片擦除

    图片擦除实现步骤 加载图片,并添加拖动手势;另外加载一张背景图片,用于图片被擦除后显示,置于擦除图片下方 开启位图...

  • 图片擦除

    图片擦除思路.弄两个不同的图片.上面一张, 下面一张.添加手势,手指在上面移动,擦除图片.擦除前要先确定好擦除区域...

  • Quartz2D之图片擦除

    图片擦除

  • 图片擦除

    这里下载DEMO 原理:双层imageView,顶部imageview添加拖动手势,清除顶部imageview的上...

  • 图片水印.擦除 图片截屏.........

    画板 图片裁剪 图片擦除 方形图片生产圆形头像 手机截屏 图片水印

  • iOS 图片擦除

    业务逻辑:上下两张图片,上方的图片遮盖下方的图片,为上方图片添加手势,根据手势的位置创建一个擦除的小块,然后开启位...

  • iOS - 图片擦除

    iOS 这碗饭吃了这么久,却没留下点什么东西在我的简书上,一方面是自己的懒惰,一方面还是自己懒,但是今天呢,想起来...

  • 【练习笔记】AK大神001期-简易天空替换

    导入天空图片素材和要替换天空的视频素材,视频放在天空素材下方 给天空素材加内置效果“线性擦除”,把图片素材进行擦除...

  • DDGScreenShot--iOS 图片处理--多图片拼接 (

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

网友评论

      本文标题:DDGScreenShot—图片擦除功能

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