首页 > 代码库 > iOS 画圆形头像

iOS 画圆形头像


demo下载地址:http://pan.baidu.com/s/1mgBf6YG





_logoImageView.image = [selfgetEllipseImageWithImage:[UIImageimageNamed:@"1_wsq724439564.jpg"]];



-(UIImage*)getEllipseImageWithImage:(UIImage*)originImage

{

    CGFloat padding = 5;//圆形图像距离图像的边距

    UIColor* epsBackColor = [UIColorgreenColor];//图像的背景色

    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 = [UIColorgreenColor];//图像的背景色

    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, [UIColorwhiteColor].CGColor);//设置边框颜色

    CGContextSetLineCap(ctx,kCGLineCapButt);

    CGContextSetLineWidth(ctx, borderWidth);//设置边框宽度。

    CGContextAddEllipseInRect(ctx, desRect);//在这个框中画圆

    CGContextStrokePath(ctx);// 描边框。

    // 边框 //


    UIImage* desImage =UIGraphicsGetImageFromCurrentImageContext();//获取当前图形上下文中的图像。

    UIGraphicsEndImageContext();

    return desImage;

}