/**
繪制圓角圖片
@param boardW 邊框?qū)挾? @param boardColor 邊框顏色
@param image 裁剪圖片
@return 圓角圖片
*/
+ (UIImage *)imageWithBoard:(CGFloat)boardW
boardColor:(UIColor *)boardColor
image:(UIImage *)image;
+ (UIImage *)imageWithBoard:(CGFloat)boardW boardColor:(UIColor *)boardColor image:(UIImage *)image{
// 帶邊框,相當(dāng)于分兩次繪制,第一次繪制: 繪制大圓;第二次繪制: 在大圓的基礎(chǔ)上進(jìn)行圖片裁剪繪制
// 1. 確定邊框?qū)挾群痛髨A尺寸
CGSize size = CGSizeMake(image.size.width+2*boardW, image.size.height+2*boardW);
// 2. 開(kāi)啟跟原始圖片一樣的位圖上下文
UIGraphicsBeginImageContextWithOptions(size, NO, 0);
// 3. 設(shè)置一個(gè)大圓
UIBezierPath * path = [UIBezierPath bezierPathWithOvalInRect:(CGRectMake(0, 0, size.width, size.height))];
// 3.1 設(shè)置填充顏色
[boardColor set];
// 3.2 填充展示
[path fill];
// 4.1 繪制一個(gè)小圓
UIBezierPath * clipPath = [UIBezierPath bezierPathWithOvalInRect:(CGRectMake(boardW, boardW, image.size.width, image.size.height))];
// 4.2 把圓形的路徑設(shè)置成裁剪路徑
[clipPath addClip]; //默認(rèn)超出裁剪區(qū)域以外的內(nèi)容都裁剪掉
// 5. 把圖片繪制到上下文中(超出裁剪區(qū)域以外的內(nèi)容都會(huì)裁剪掉)
[image drawAtPoint:CGPointMake(boardW, boardW)];
// 6. 從上下文中獲取圖片
UIImage * tempImage = UIGraphicsGetImageFromCurrentImageContext();
// 7. 關(guān)閉上下文
UIGraphicsEndImageContext();
return tempImage;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者