Quartz2D裁剪圆形头像

转载自:http://blog.csdn.net/u014656271/article/details/30115417


// 0. 加载原有图片
  UIImage *image = [UIImage imageNamed:icon];
  
  // 1.创建图片上下文
  CGFloat margin = border;
  CGSize size = CGSizeMake(image.size.width + margin, image.size.height + margin);
  
  // YES 不透明 NO 透明
  UIGraphicsBeginImageContextWithOptions(size, NO, 0);
  // 2.绘制大圆
  CGContextRef ctx = UIGraphicsGetCurrentContext();
  CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, size.width, size.height));
  [color set];
  CGContextFillPath(ctx);
  
  // 3.绘制小圆
  CGFloat smallX = margin * 0.5;
  CGFloat smallY = margin * 0.5;
  CGFloat smallW = image.size.width;
  CGFloat smallH = image.size.height;
  CGContextAddEllipseInRect(ctx, CGRectMake(smallX, smallY, smallW, smallH));
  //	[[UIColor greenColor] set];
  //	CGContextFillPath(ctx);
  // 4.指点可用范围, 可用范围的适用范围是在指定之后,也就说在在指定剪切的范围之前绘制的东西不受影响
  CGContextClip(ctx);
  
  // 5.绘图图片
  [image drawInRect:CGRectMake(smallX, smallY, smallW, smallH)];
  
  // 6.取出图片
  UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

可以将制作头像的代码添加为UIImage的分类以便于以后的调用

@interface UIImage (GL)
/**
 *  生成头像
 *
 *  @param icon   头像图片名称
 *  @param border 头像边框大小
 *  @param color  头像边框的颜色
 *
 *  @return 生成好的头像
 */
+ (instancetype)imageWithIcon:(NSString *)icon border:(NSInteger)border color:(UIColor *)color;
@end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值