iOS~图片裁剪圆角矩形

作者: 爱上别的吧 | 来源:发表于2017-01-09 16:44 被阅读313次
    写了一个将矩形图片裁剪为圆角矩形的UIImage分类,可以避免大量的使用masksToBounds从而产生离屏渲染。

    1.思路

    首先利用CoreGraphics绘制出一个圆角矩形的上下文,然后将图片画到上下文中,最后通过上下文获取裁剪好的图片。

    2.核心代码
    - (UIImage *)setCornerWithRadius:(CGFloat)radius andSize:(CGSize)size
    {
        //开启图形上下文
        UIGraphicsBeginImageContext(size);
        //绘制圆角矩形
        CGRect rect = CGRectMake(0, 0, size.width, size.height);
        UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(radius, radius)];
        //将Path添加到上下文中
        CGContextAddPath(UIGraphicsGetCurrentContext(), path.CGPath);
        //裁剪上下文
        CGContextClip(UIGraphicsGetCurrentContext());
        //将图片绘制到上下文中
        [self drawInRect:rect];
        //设置绘制模式
        CGContextDrawPath(UIGraphicsGetCurrentContext(), kCGPathStroke);
        //获取图片
        UIImage *output = UIGraphicsGetImageFromCurrentImageContext();
        //关闭上下文
        UIGraphicsEndImageContext();
        //返回裁剪好的图片
        return output;
    }
    
    3.源码

    源码放在了github上,欢迎指正,觉得不错的star一下呀!

    相关文章

      网友评论

      本文标题:iOS~图片裁剪圆角矩形

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