iOS~图片裁剪圆角矩形

写了一个将矩形图片裁剪为圆角矩形的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~图片裁剪圆角矩形)