擦除时图像变得模糊和缩小

我正在使用擦除图像的function,我的代码如下所示。 你可以看到这里的video 。 这里current_sticker_img是我的Imageview

注意: 我也使用Pan Gesture来缩放图像

  //MARK: Eraser touch event override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { if btn_eraser.isSelected == true || btn_repaint.isSelected == true{ let touch : UITouch = touches.first! lastpoint = touch.location(in: current_sticker_img) } } override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) { if btn_eraser.isSelected == true || btn_repaint.isSelected == true{ let touch = touches.first! let currentPoint : CGPoint = touch.location(in: current_sticker_img) let isPointInsideView = current_sticker_img.point(inside: currentPoint, with: event) if isPointInsideView { UIGraphicsBeginImageContext(current_sticker_img.frame.size) // UIGraphicsBeginImageContextWithOptions(CGSize(width: (current_sticker_img.image?.size.width)!, height: (current_sticker_img.image?.size.height)!), false, (current_sticker_img.image?.scale)!) current_sticker_img .image?.draw(in: CGRect(x: 0, y: 0, width: (current_sticker_img.frame.size.width), height: (current_sticker_img.frame.size.height))) UIGraphicsGetCurrentContext()!.setLineCap(.round) UIGraphicsGetCurrentContext()?.setLineWidth(Current_slider_value_for_Eraser) UIGraphicsGetCurrentContext()?.setShadow(offset: CGSize(width: CGFloat(0), height: CGFloat(0)), blur: 0, color: UIColor.clear.cgColor ) UIGraphicsGetCurrentContext()!.setBlendMode(.clear) UIGraphicsGetCurrentContext()?.move(to: CGPoint(x: CGFloat(lastpoint.x), y: CGFloat(lastpoint.y))) UIGraphicsGetCurrentContext()?.addLine(to: CGPoint(x: CGFloat(currentPoint.x), y: CGFloat(currentPoint.y))) UIGraphicsGetCurrentContext()!.strokePath() current_sticker_img.image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() lastpoint = currentPoint } } } 

我做错了什么? 请帮助我。 谢谢

Interesting Posts