首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从图像中擦除像素,然后将其还原

从图像中擦除像素,然后将其还原
EN

Stack Overflow用户
提问于 2021-04-23 20:43:26
回答 1查看 29关注 0票数 0

我正在创建一个橡皮擦应用程序,其中我有一张图片,用户可以使用以下函数擦除背景:

代码语言:javascript
复制
  func eraseImage( image: UIImage ,line: [CGPoint] ,brushSize: CGFloat) -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(proxy.size, false, 0)
        
        let context = UIGraphicsGetCurrentContext()
        
        let rect = AVMakeRect(aspectRatio: image.size, insideRect: CGRect(x: 0, y:0, width: proxy.size.width, height: proxy!.size.height))

        //lassoImageView.image?.draw(in: calculateRectOfImageInImageView(imageView: lassoImageView))
        image.draw(in: rect, blendMode: .normal, alpha: 1)
        
        context?.move(to: CGPoint(x: line.first!.x - 50, y: line.first!.y - 50))
        for pointIndex in 1..<line.count {
            context?.addLine(to: CGPoint(x: line[pointIndex].x - 50, y: line[pointIndex].y - 50))
        }
        
        context?.setBlendMode(.clear)
        context?.setLineCap(.round)
        context?.setLineWidth(brushSize)
        context?.setShadow(offset: CGSize(width: 0, height: 0), blur: 8)
        context?.strokePath()
                
        
        if let img = UIGraphicsGetImageFromCurrentImageContext() {
            return img
        }
        
        UIGraphicsEndImageContext()
        return nil
    }

我正在努力弄清楚如何添加一个绘图功能,让用户可以纠正它的先锋错误,并拉回一些部分。我正在考虑在编辑后的图像上绘制原始图像,该图像带有跟踪用户位置的cgpoint的路径蒙版。这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-23 21:47:52

我建议使用第二个CALayer作为遮罩来设置您的图像。将图像视图安装到遮罩层的内容中,并使用透明/不透明颜色绘制到蒙版中,以遮罩/曝光图像层中的像素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67230181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档