1.有的时候,为了工作的需要,需要吧图片裁剪成圆形。我们一般有两种思路:让承载image的ImageView变成圆形,或者把图片变成圆形。
A:通过image的mask 来操作。需要添加mask目标图片。 这个需要借助图片处理工具,不再赘述。
B“通过设置 imageView的 layer 来裁剪 ImageVIew进行操作。
_userInfoView = [[LCUserInfoView alloc]initWithFrame:CGRectMake(0, 60, ScreenWidth, 80)];
_userInfoView.backgroundColor = [UIColor blueColor];
_userInfoView.nickName.text = @"活的潇洒才是真的";
_userInfoView.sex.text = @"男";
_userInfoView.shortShow.text = @"潇潇洒洒的走天下,走到天涯都不怕";
_userInfoView.userImageView.layer.masksToBounds = YES;
_userInfoView.userImageView.layer.cornerRadius = 30;
[_userInfoView.userImageView setImage:[UIImage imageNamed:@"test3.png"]];
[self.view addSubview:_userInfoView];
C:通过代码对画布进行裁剪。
- -(UIImage*) circleImage:(UIImage*) image withParam:(CGFloat) inset {
- UIGraphicsBeginImageContext(image.size);
- CGContextRef context = UIGraphicsGetCurrentContext();
- CGContextSetLineWidth(context, 2);
- CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
- CGRect rect = CGRectMake(inset, inset, image.size.width - inset * 2.0f, image.size.height - inset * 2.0f);
- CGContextAddEllipseInRect(context, rect);
- CGContextClip(context);
- [image drawInRect:rect];
- CGContextAddEllipseInRect(context, rect);
- CGContextStrokePath(context);
- UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- return newimg;
- }
第三种方法不常用,没有尝试。