IOS: create a UIImage or UIImageView with rounded corners

后端 未结 12 778
执笔经年
执笔经年 2020-12-07 07:26

Is it possible create an UIImage or an UIImageView with rounded corners? Because I want take an UIImage and show it inside an UI

12条回答
  •  余生分开走
    2020-12-07 08:02

    Circle with UIBeizerPath #Swift-3 && #imageExtension

    class ViewController: UIViewController {
        @IBOutlet weak var imageOutlet: UIImageView!
        override func viewDidLoad() {
            super.viewDidLoad()
            let image = UIImage(named: "IMG_0001.JPG")
            if let image = image {
                let renderimage = image.imageCroppingBezierPath(path: UIBezierPath(arcCenter: CGPoint(x:image.size.width/2,y:image.size.width/2 )  , radius: 200, startAngle: 0, endAngle:  (2 * CGFloat(M_PI) ), clockwise: true) )
                    imageOutlet.image = renderimage
            }
        }
    }
    
    
    extension UIImage {
        func imageCroppingBezierPath(path:UIBezierPath) ->UIImage {
    
            let frame = CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height)
    
            //Defining a graphic context  to paint on
            UIGraphicsBeginImageContextWithOptions(self.size, false, 0.0)
            //Get the current graphics context (if it exists)
            let context = UIGraphicsGetCurrentContext()
            //save the current graphic context
            context?.saveGState()
            // clipping area
            path.addClip()
            self.draw(in: frame)
    
            //To extract an image from our canvas
            let image = UIGraphicsGetImageFromCurrentImageContext()
            //restore graphic context
            context?.restoreGState()
            //remove current context from stack
            UIGraphicsEndImageContext()
            return image!
        }
    }
    

提交回复
热议问题