demo下载地址:http://pan.baidu.com/s/1mgBf6YG
_logoImageView.image = [self getEllipseImageWithImage:[UIImage imageNamed:@"1_wsq724439564.jpg"]];
-(UIImage*)getEllipseImageWithImage:(UIImage*)originImage
{
CGFloat padding = 5;//圆形图像距离图像的边距
UIColor* epsBackColor = [UIColor greenColor];//图像的背景色
CGSize originsize = originImage.size;
CGRect originRect = CGRectMake(0, 0, originsize.width, originsize.height);
UIGraphicsBeginImageContext(originsize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
//目标区域。
CGRect desRect = CGRectMake(padding, padding,originsize.width-(padding*2), originsize.height-(padding*2));
//设置填充背景色。
CGContextSetFillColorWithColor(ctx, epsBackColor.CGColor);
UIRectFill(originRect);//真正的填充
//设置椭圆变形区域。
CGContextAddEllipseInRect(ctx,desRect);
CGContextClip(ctx);//截取椭圆区域。
[originImage drawInRect:originRect];//将图像画在目标区域。
UIImage* desImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return desImage;
}
带有边框的圆形头像。
-(UIImage*)getEllipseImageWithImage:(UIImage*)originImage
{
CGFloat padding = 5;//圆形图像距离图像的边距
UIColor* epsBackColor = [UIColor greenColor];//图像的背景色
CGSize originsize = originImage.size;
CGRect originRect = CGRectMake(0, 0, originsize.width, originsize.height);
UIGraphicsBeginImageContext(originsize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
//目标区域。
CGRect desRect = CGRectMake(padding, padding,originsize.width-(padding*2), originsize.height-(padding*2));
//设置填充背景色。
CGContextSetFillColorWithColor(ctx, epsBackColor.CGColor);
UIRectFill(originRect);//真正的填充
//设置椭圆变形区域。
CGContextAddEllipseInRect(ctx,desRect);
CGContextClip(ctx);//截取椭圆区域。
[originImage drawInRect:originRect];//将图像画在目标区域。
// 边框 //
CGFloat borderWidth = 10;
CGContextSetStrokeColorWithColor(ctx, [UIColor whiteColor].CGColor);//设置边框颜色
CGContextSetLineCap(ctx, kCGLineCapButt);
CGContextSetLineWidth(ctx, borderWidth);//设置边框宽度。
CGContextAddEllipseInRect(ctx, desRect);//在这个框中画圆
CGContextStrokePath(ctx); // 描边框。
// 边框 //
UIImage* desImage = UIGraphicsGetImageFromCurrentImageContext();// 获取当前图形上下文中的图像。
UIGraphicsEndImageContext();
return desImage;
}
原文地址:http://blog.csdn.net/shouqiangwei/article/details/24796985