iOS 画圆形头像

时间:2014-05-01 17:56:47   收藏:0   阅读:445


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


mamicode.com,码迷



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

}



iOS 画圆形头像,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!