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一下呀!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容