標籤: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;
}