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

_logoImageView.image = [self
getEllipseImageWithImage:[UIImage
imageNamed:@"1_wsq724439564.jpg"]];

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

{

;//圆形图像距离图像的边距

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

CGSize originsize = originImage.size;

CGRect originRect =
CGRectMake(, , originsize.width, originsize.height);

UIGraphicsBeginImageContext(originsize);

CGContextRef ctx =
UIGraphicsGetCurrentContext();

//目标区域。

CGRect desRect = 
CGRectMake(padding, padding,originsize.), originsize.));

//设置填充背景色。

CGContextSetFillColorWithColor(ctx, epsBackColor.CGColor);

UIRectFill(originRect);//真正的填充

//设置椭圆变形区域。

CGContextAddEllipseInRect(ctx,desRect);

CGContextClip(ctx);//截取椭圆区域。

[originImage drawInRect:originRect];//将图像画在目标区域。

UIImage* desImage =
UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return desImage;

}

带有边框的圆形头像。

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

{

;//圆形图像距离图像的边距

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

CGSize originsize = originImage.size;

CGRect originRect =
CGRectMake(, , originsize.width, originsize.height);

UIGraphicsBeginImageContext(originsize);

CGContextRef ctx =
UIGraphicsGetCurrentContext();

//目标区域。

CGRect desRect = 
CGRectMake(padding, padding,originsize.), originsize.));

//设置填充背景色。

CGContextSetFillColorWithColor(ctx, epsBackColor.CGColor);

UIRectFill(originRect);//真正的填充

//设置椭圆变形区域。

CGContextAddEllipseInRect(ctx,desRect);

CGContextClip(ctx);//截取椭圆区域。

[originImage drawInRect:originRect];//将图像画在目标区域。

//
边框 //

;

CGContextSetStrokeColorWithColor(ctx, [UIColor
whiteColor].CGColor);//设置边框颜色

CGContextSetLineCap(ctx,
kCGLineCapButt);

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

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

CGContextStrokePath(ctx);
// 描边框。

//
边框 //

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

UIGraphicsEndImageContext();

return desImage;

}


最新文章

  1. Dom addEventlistener与id 绑定事件的区别(续)
  2. React Native初试:Windows下Andriod环境搭建
  3. oracle学习之表空间
  4. 图表框架HelloCharts(3)饼状图
  5. hdu 2689
  6. jsp跳转到servlet
  7. 【带着canvas去流浪】(2)绘制折线图
  8. Vue基本使用和指令集
  9. 【转】Visual Studio——多字节编码与Unicode码
  10. elasticsearch最大的条件数设置
  11. Ford VCM II Ford VCM2 Diagnostic Tool with Ford IDS v108 Installed On Laptop Ready to Use
  12. [通信] C# TCP实现多个客户端与服务端 数据 与 文件的传输
  13. [ios]MKMapView中使用MKPolyline画线
  14. Linux & Oracle目录说明
  15. 代码重构:用工厂+策略模式优化过多的if else代码块
  16. Filter详解
  17. OpenGL 4.0的Tessellation Shader(细分曲面着色器)
  18. 64_r3
  19. Linux 下8种优秀的屏幕录制机
  20. Mock数据使用的Util

热门文章

  1. CDR X6设计师的福利,3折特惠!
  2. OSI概述问答
  3. 关于CAS操作
  4. [HDU5688]2016"百度之星" - 资格赛 Problem D
  5. CF1065D Three Pieces (多元最短路)
  6. java redistemplate
  7. mven系列问题
  8. 【图灵杯 E也即POJ 3368】简单的RMQ
  9. SWT自定义选项卡CTabFolder
  10. LeetCode【8】. String to Integer (atoi) --java实现