iOS 畫圓形頭像

來源:互聯網
上載者:User

標籤:ios   圖形   uiimage   


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;

}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.