/**
* 将image转换为圆型带边框的图片(最好写一个UIImage的类扩展)
*
* @param name 图片的名字
* @param borderWidth 外层边框的宽度
* @param borderColor 外层边框的颜色
*
* @return 返回已经处理好的圆形图片
*/
+ (instancetype)circleImageWithName:(NSString *)name borderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor
{
// 1.加载原图
UIImage *oldImage = [UIImage imageNamed:name]; // 2.开启上下文
CGFloat imageW = oldImage.size.width + * borderWidth;
CGFloat imageH = oldImage.size.height + * borderWidth;
CGSize imageSize = CGSizeMake(imageW, imageH);
UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0); // 3.取得当前的上下文
CGContextRef ctx = UIGraphicsGetCurrentContext(); // 4.画边框(大圆)
[borderColor set];
CGFloat bigRadius = imageW * 0.5; // 大圆半径
CGFloat centerX = bigRadius; // 圆心
CGFloat centerY = bigRadius;
CGContextAddArc(ctx, centerX, centerY, bigRadius, , M_PI * , );
CGContextFillPath(ctx); // 画圆 // 5.小圆
CGFloat smallRadius = bigRadius - borderWidth;
CGContextAddArc(ctx, centerX, centerY, smallRadius, , M_PI * , );
// 裁剪(后面画的东西才会受裁剪的影响)
CGContextClip(ctx); // 6.画图
[oldImage drawInRect:CGRectMake(borderWidth, borderWidth, oldImage.size.width, oldImage.size.height)]; // 7.取图
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); // 8.结束上下文
UIGraphicsEndImageContext(); return newImage;
}

最新文章

  1. 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)
  2. 【Redis】:Jedis 使用
  3. BZOJ4540 [Hnoi2016]序列
  4. js常用函数
  5. Visual Studio Online Integrations-Testing
  6. javascript 中 in操作符
  7. angular依赖注入的理解(转)
  8. 使用GDB调试Android NDK native(C/C++)程序
  9. 机器学习-review-1 线性回归
  10. Eclipse 4.3正式版发布
  11. C#动态获取鼠标坐标
  12. 使用location.href跳转页面在火狐浏览器中报错404
  13. MySQL Connector/C++ 8.0 源码编译
  14. 论文笔记:Progressive Neural Architecture Search
  15. 更换jupyter notebook风格主题、修改默认工作路径(Ubuntu系统和Win系统)
  16. jQuery应用实例2:表格隔行换色
  17. winform 凹进去的button
  18. Go语言学习笔记(二)十分钟上手
  19. c#中的 数组
  20. cnn 反向bp这个地方怎么推导??

热门文章

  1. AT Tool --- android手机发送at指令
  2. tomcat解决加载JSP文件过大错误
  3. [转]Centos安装zeromq和jzmq
  4. ListView 中含有 EditText 导致焦点丢失的问题
  5. MySQL连接查询的简单概括+思维导图
  6. 可扩展Web架构与分布式系统(转)
  7. unix&linux大学教程 目录
  8. Tomcat服务相关
  9. OC中copy的使用
  10. Druid安装-单机