美文网首页
Swift 高性能图片圆角裁切

Swift 高性能图片圆角裁切

作者: Bobo_Ma | 来源:发表于2017-12-04 11:25 被阅读0次

    //说明:JPG 图片不支持透明,使用jpg用imageNamed 方法 需要指定扩展名(没放在Assets中)///将给定的图像进行拉伸,并返回‘新的’图像

    func avatarImage(image:UIImage,size:CGSize,backColor:UIColor? = UIColor.white,lineColor:UIColor? = UIColor.lightGray) -> UIImage? {

    let rect = CGRect(origin: CGPoint(), size: size)

    //图像的上下文-内存中开辟地址,跟屏幕无关

    /**

    参数:

    1>size :绘图的尺寸

    2>不透明:false (透明) / true(不透明)。  透明会影响性能

    3>scale :屏幕分辨率,生成的图片默认使用1.0的分辨率,图像质量不好可以指定0,会选择当前设备的屏幕分辨率

    */

    UIGraphicsBeginImageContextWithOptions(size, true, 0)

    //0. 背景填充 否则裁切圆角时候会出现裁掉的部分为黑色

    backColor?.setFill()

    UIRectFill(rect)

    //1.实例化一个圆形的路径

    let path = UIBezierPath(ovalIn: rect)

    //2.进行路径裁切 后续绘图 都会出现在圆形内部,外部干掉

    path.addClip()

    //3.绘制内切的圆形

    lineColor?.setStroke()

    path.lineWidth = 2

    path.stroke()

    //4.取得结果

    let  result = UIGraphicsGetImageFromCurrentImageContext()

    //5.关闭上下文

    UIGraphicsEndImageContext()

    //6.返回结果

    return result

    }

    相关文章

      网友评论

          本文标题:Swift 高性能图片圆角裁切

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