01-帶有邊框的圖片裁剪
具體實(shí)現(xiàn)思路:
1.假設(shè)邊框?qū)挾葹锽orderW
2.開啟的圖片上下文的尺寸就應(yīng)該是原始圖片的寬高分別加上兩倍的BorderW,這樣開啟的目的是為了不讓原始圖片變形.
3.在上下文上面添加一個圓形填充路徑.位置從0,0點(diǎn)開始,寬高和上下文尺寸一樣大.設(shè)置顏色為要設(shè)置的邊框顏色.
4.繼續(xù)在上下文上面添加一個圓形路徑,這個路徑為裁剪路徑.
它的x,y分別從BorderW這個點(diǎn)開始.寬度和高度分別和原始圖片的寬高一樣大.
將繪制的這個路徑設(shè)為裁剪區(qū)域.
5.把原始路徑繪制到上下文當(dāng)中.繪制的位置和是裁剪區(qū)域的位置相同,x,y分別從border開始繪制.
6.從上下文狀態(tài)當(dāng)中取出圖片.
7.關(guān)閉上下文狀態(tài).
//帶邊框的裁剪
- (UIImage *)clipImage {
UIImage *image = [UIImage imageNamed:@"kenan.jpg"];
CGFloat imageWH = image.size.width;
//邊界寬度
CGFloat border = 1.5;
//圓環(huán)的高度和寬度
CGFloat ovalWH = imageWH + 2 * border;
UIGraphicsBeginImageContextWithOptions(CGSizeMake(ovalWH, ovalWH), NO, 0);
//畫大圓
UIBezierPath *bigArc = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, ovalWH, ovalWH)];
[[UIColor colorWithRed:1.000 green:0.138 blue:0.046 alpha:1.000] set];
[bigArc fill];
//設(shè)置裁剪區(qū)域
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border, border, imageWH, imageWH)];
[path addClip];
[image drawAtPoint:CGPointMake(border, border)];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}