标签:
原理:开启一个比图片稍大的位图上下文,然后在位图上下文上绘制一个内切圆,最后绘制一个比位图上下文小的图片,并切去边缘。如下图所示。
步骤:
1. 加载原生图片
2. 开启上下文
3. 画大圆并填充路径
4. 设置裁剪区域
5. 绘制图形
6. 获取图片
7. 关闭上下文
代码:
- (void)viewDidLoad { [super viewDidLoad]; //1.加载原生图片 UIImage *image = [UIImage imageNamed:@"高圆圆"]; //self.imageView.image = image; //图片的宽度和高度 CGFloat imageWH = image.size.width; //边界宽度 CGFloat border = 1.5; //圆环的高度和宽度 CGFloat ovalWH = imageWH + 2 * border; //2.开启上下文 UIGraphicsBeginImageContextWithOptions(CGSizeMake(ovalWH, ovalWH), NO, 0); //3.画大圆 UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, ovalWH, ovalWH)]; [[UIColor colorWithRed:1.000 green:0.138 blue:0.046 alpha:1.000] set]; [path fill]; //4.设置裁剪区域 UIBezierPath *clipedPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border, border, imageWH, imageWH)]; [clipedPath addClip]; //5.绘制图形 [image drawAtPoint:CGPointMake(border, border)]; //6.获取图片 UIImage *clipedImage = UIGraphicsGetImageFromCurrentImageContext(); //7.关闭上下文 UIGraphicsEndImageContext(); self.imageView.image = clipedImage; }原图:
裁剪后的图形:
标签:
原文地址:http://blog.csdn.net/bao_libra/article/details/51355375