iOS如何裁剪圆形头像

本文实例为大家介绍了iOS裁剪圆形头像的详细代码,供大家参考,具体内容如下

- (void)viewDidLoad {

[super viewDidLoad];

//加载图片

UIImage *image = [UIImage imageNamed:@"菲哥"];

//获取图片尺寸

CGSize size = image.size;

//开启位图上下文

UIGraphicsBeginImageContextWithOptions(size, NO, 0);

//创建圆形路径

UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, image.size.width, image.size.height)];

//设置为裁剪区域

[path addClip];

//绘制图片

[image drawAtPoint:CGPointZero];

//获取裁剪后的图片

_imageView.image = UIGraphicsGetImageFromCurrentImageContext();

//关闭上下文

UIGraphicsEndImageContext();

}

再来一张菲哥的头像

如果想要在圆形头像外加一个边框,思路是先绘制一个大圆,然后在这个圆尺寸范围内绘制一个图片大小的圆。

- (void)viewDidLoad {

[super viewDidLoad];

//加载图片

UIImage *image = [UIImage imageNamed:@"大菲哥"];

//设置边框宽度

CGFloat border = 3;

CGFloat imageWH = image.size.width;

//计算外圆的尺寸

CGFloat ovalWH = imageWH + 2 * border;

//开启上下文

UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);

//画一个大的圆形

UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, ovalWH, ovalWH)];

[[UIColor orangeColor]set];

[path fill];

//设置裁剪区域

UIBezierPath *path1 = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border, border, imageWH, imageWH)];

[path1 addClip];

//绘制图片

[image drawAtPoint:CGPointMake(border, border)];

//从上下文中获取图片

_imageView.image = UIGraphicsGetImageFromCurrentImageContext();

//关闭上下文

UIGraphicsEndImageContext();

}

效果如图:

屏幕截图代码:

原理就是把屏幕上控件的layer渲染到上下文中

- (void)viewDidLoad {

[super viewDidLoad];

//开启上下文

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0);

//获取上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

//把控件上的图层渲染到上下文

[self.view.layer renderInContext:ctx];

//获取上下文中的图片

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

//关闭上下文

UIGraphicsEndImageContext();

//保存图片到相册

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

}

以上就是本文的全部内容,希望对大家的学习有所帮助。相关阅读:

详解javascript中原始数据类型Null和Undefined

css3发光搜索表单分享

asp.net中如何批量导出access某表内容到word文档

分享33个jQuery与CSS3实现的绚丽鼠标悬停效果

C#时间格式化(Datetime)用法详解

SQL实现递归及存储过程中In()参数传递解决方案详解

免费升级win10后需要激活吗?win10激活需要收费吗?

微信开发中mysql字符编码问题

html5实现多文件的上传示例代码

简单了解CentOS的开机启动过程以及设置启动时间

Android判断用户2G/3G/4G移动数据网络

Java中一个线程执行死循环有什么后果

ASP.NET对txt文件相关操作(读取、写入、保存)

Windows7系统打开word文档提示当前用户没有安装Microsoft Office的原因及解决方法

ios 裁剪圆形头像_IOS_iOS如何裁剪圆形头像,本文实例为大家介绍了iOS裁剪 - phpStudy...相关推荐

  1. android qq 圆形头像,Android仿QQ圆形头像个性名片

    先看看效果图: 中间的圆形头像和光环波形讲解请看:https://www.jb51.net/article/96508.htm 周围的气泡布局,因为布局RatioLayout是继承自ViewGroup ...

  2. 怎么做圆形二维码_圆形吊顶怎么做?装修网盘点圆形吊顶安装注意事项

    天津装修网小编今天要来和大家聊的就是圆形吊顶,那大家知道圆形吊顶怎么做吗?如果不知道的话,大家就快来看看天津装修网小编今天的分享吧! 一.圆形吊顶怎么做 1.主要需求的准备工作是编制建筑材料.必须准备 ...

  3. 圆形标定板_基于圆形标定板特征点提取及排序的方法

    基于圆形标定板特征点提取及排序的方法 刘智 [摘 要] 摘要:在计算机视觉中 , 圆形标定板被广泛使用在像机标定中 , 本文针 对圆形标定板图像 ( 图 1) 在特征点提取后的排序问题 , 提出了利用 ...

  4. 关于QQ群头像以及微信讨论组头像的工具类

    QQ群头像以及微信讨论组头像工具类介绍  介绍: 由于段时间公司项目需求,在翻了网上很多代码后发现,很多人用的是自定义View的办法来实现此类头像的效果,但是,这样一来就必须改变项目中原有的控件,而且 ...

  5. php头像上传思路,PHP头像上传,php头像上传_PHP教程

    PHP 头像上传,php头像上传 嘻嘻,自从圣诞节过后,就一直懒散,这几天也因为是太过于繁忙的原因,感觉好久都没有出来冒冒泡,诶... 为了生活一直在奋斗,作为一名前端开发工程师,我现在越来越迷茫了, ...

  6. php使用自定义alert,IOS_iOS自定义alertView提示框实例分享,本文实例为大家分享iOS自定义a - phpStudy...

    iOS自定义alertView提示框实例分享 本文实例为大家分享iOS自定义alertView提示框,先上图,弹框的背景色,按钮背景色,提示的消息的字体颜色都可以改变 利用单例实现丰富的自定义接口 / ...

  7. foobar2000隐藏桌面悬浮窗头像_多多情侣头像大全app-多多情侣头像大全软件v1.0.1...

    多多情侣头像大全app,为小伙伴提供更有意思的情侣头像,涵盖更多的头像资源,提供卡通,萌宠,真人,明星等等头像资源,带给小伙伴更多的情头选择,帮助小伙伴选出最喜欢的情侣,满足小伙伴对于情头的需求,一键 ...

  8. 详细介绍CISCO IOS命名规则

    首先说说IOS的运行平台,c2500.c2600.c4500.c2950代表运行此IOS的硬件平台,例如:C2500指2500系列路由器.% y( h* g1 F* ^1 g; c 其次,看看IOS的 ...

  9. 自动生成带昵称的头像(仿照钉钉头像)

    很多场合都会出现默认头像,比如刚注册的账户还未自定义头像,显示就是默认头像,这种头像一般都很丑,想到钉钉那种风格还挺特别的,仿照写一个. 废话不多说,直接上代码. import java.awt.*; ...

最新文章

  1. 马斯克脑洞破解谁是“中本聪”?
  2. java 服务端客户端数据传输出现乱码
  3. VTK:可视化之RenderTranslucentGeometry
  4. 【MySQL】查看MySQL配置文件路径及相关配置
  5. java bitset_Java BitSet length()方法与示例
  6. 优秀案例|App内弹窗界面设计灵感
  7. ipad无法充电怎么办_哈尔滨Ipad死机了维修费用价目表_京宏通讯器材维修培训学校...
  8. Mysql8完全卸载教程
  9. 成功真正需要什么:情商德商及体商 别高估智商
  10. Python字符串格式化
  11. ArrayList,LinkedList,Vector三者的异同
  12. 2020年中山大学CS夏令营
  13. 微信小程序全选,微信小程序checkbox,微信小程序购物车
  14. 云速美建站手机端使用百度app打开手机端网站闪退的问题
  15. SAP MM寄售采购业务
  16. linux上最好的p图软件,10款好用的手机P图软件排行榜
  17. java格式化金额千位数,java金额格式化解决思路
  18. Java本地高性能缓存的几种实现方式
  19. H5 连接蓝牙打印机,打印条码、二维码
  20. 我该如何在30天后找到一份数据挖掘相关工作

热门文章

  1. 数值保留几位小数后四舍五入、向上取值、向下取值、
  2. 上传一个 游戏server架构图
  3. 常用sql 全记录(添加中)
  4. redis命令 举例
  5. web中的classpath 和 classpath*
  6. js jq 一些属性
  7. 首发不同文件的md5碰撞真正方法——有图(视频教程加工具)非暴力碰撞!
  8. Delphi发送邮件...
  9. 2010.11.13信息系统项目管理师考试下午试题答题思路剖析
  10. 通用的N-Tier模型合理么?