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;
}