Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
- if let touch = touches.first as UITouch?{
- let touchPoint = touch.location(in: self.lassoImageView) + lassoOffset!
- print("touch begin to : (touchPoint)")
- eraserStartPoint = touchPoint
- }
- }
- override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
- if let touch = touches.first as UITouch?{
- let touchPoint = touch.location(in: self.lassoImageView) + lassoOffset!
- print("touch moved to : (touchPoint)")
- erase(fromPoint: eraserStartPoint!, toPoint: touchPoint)
- eraserStartPoint = touchPoint
- }
- }
- override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
- if let touch = touches.first as UITouch?{
- let touchPoint = touch.location(in: self.lassoImageView) + lassoOffset!
- print("touch ended at : (touchPoint)")
- erase(fromPoint: touchPoint, toPoint: touchPoint)
- UIGraphicsBeginImageContext(lassoImageView.frame.size)
- lassoImageView.image?.draw(in: CGRect(x: 0, y: 0, width: lassoImageView.frame.size.width, height: lassoImageView.frame.size.height), blendMode: .normal, alpha: 1.0)
- lassoImageView.image?.draw(in: CGRect(x: 0, y: 0, width: lassoImageView.frame.size.width, height: lassoImageView.frame.size.height), blendMode: .normal, alpha: 1.0)
- lassoImageView.image = UIGraphicsGetImageFromCurrentImageContext()
- UIGraphicsEndImageContext()
- }
- func erase(fromPoint: CGPoint, toPoint: CGPoint) {
- UIGraphicsBeginImageContextWithOptions(lassoImageView.bounds.size, false, 1)
- //UIGraphicsBeginImageContext(lassoImageView.bounds.size)
- //UIGraphicsBeginImageContext(lassoImageView.image!.size)
- let context = UIGraphicsGetCurrentContext()
- lassoImageView.image?.draw(in: CGRect(x: 0, y: 0, width: lassoImageView.frame.size.width, height: lassoImageView.frame.size.height))
- //lassoImageView.image?.draw(in: calculateRectOfImageInImageView(imageView: lassoImageView))
- context?.move(to: fromPoint)
- context?.addLine(to: toPoint)
- context?.setLineCap(.round)
- context?.setLineWidth(CGFloat(eraserBrushWidth))
- context?.setBlendMode(.clear)
- context?.strokePath()
- lassoImageView.image = UIGraphicsGetImageFromCurrentImageContext()
- croppedImage = UIGraphicsGetImageFromCurrentImageContext()
- UIGraphicsEndImageContext()
- }
- lassoImageView // this is UIImageView where I'm loading image from gallery and then erasing image with my finger
- lassoOffset // this is Float for touch offset because finger hides part of image
- lassoImageView.image?.draw(in: CGRect(x: 0, y: 0, width: lassoImageView.frame.size.width, height: lassoImageView.frame.size.height))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement