iOS 图片裁剪(用户头像裁剪)

来源:互联网 发布:网站美工设计教程 编辑:程序博客网 时间:2024/05/21 17:21

图片裁剪

把一张图片裁剪为指定的样式,比如常见的用户头像
这里写图片描述 这里写图片描述

思路:

  • 在图片的基础上绘制时,需要创建一个位图上下文
  • 确定裁剪区域(超出裁剪区域的都将被清除)
  • 绘制图片
  • 从位图上下文中获取图片
  • 关闭上下文
/** 圆形头像截取 @param image 要处理的头像图片 @param border 圆环宽度 @param color 圆环颜色 @return 处理完的头像图片 */-(UIImage *)imageWithClipImage:(UIImage *)image withBorderWidth:(CGFloat)border withBorderColor:(UIColor *)color{    //设置圆环的宽度    CGFloat backImageWH = image.size.width + 2 * border;    //创建位图上下文,大小和原图一样大    UIGraphicsBeginImageContextWithOptions(CGSizeMake(backImageWH, backImageWH), NO, 0);    //画底色大圆    UIBezierPath *backPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0,backImageWH, backImageWH)];    [color set];    [backPath fill];    //设置圆形裁剪区域,正切与图片    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border,border,image.size.width, image.size.height)];    //把路径设置为裁剪区域    [path addClip];    //绘制图片    [image drawAtPoint:CGPointMake(border, border)];    //从上下文获取图片    UIImage *clipImage = UIGraphicsGetImageFromCurrentImageContext();    //关闭上下文    UIGraphicsEndImageContext();    return clipImage;}

最后,附上相关的demo,Git:(https://github.com/hejiasu/Drawing)

原创粉丝点击