1 #import <UIKit/UIKit.h>
 2
 3 @interface UIImage (NJ)
 4 /**
 5  *  生成头像
 6  *
 7  *  @param icon   头像图片名称
 8  *  @param border 头像边框大小
 9  *  @param color  头像边框的颜色
10  *
11  *  @return 生成好的头像
12  */
13 + (instancetype)imageWithIcon:(NSString *)icon border:(NSInteger)border color:(UIColor *)color;
14 @end
15
16
17 #import "UIImage+NJ.h"
18 @implementation UIImage (NJ)
19
20 + (instancetype)imageWithIcon:(NSString *)icon border:(NSInteger)border color:(UIColor *)color
21 {
22     // 0. 加载原有图片
23     UIImage *image = [UIImage imageNamed:icon];
24
25     // 1.创建图片上下文
26     CGFloat margin = border;
27     CGSize size = CGSizeMake(image.size.width + margin, image.size.height + margin);
28
29     // YES 不透明 NO 透明
30     UIGraphicsBeginImageContextWithOptions(size, NO, 0);
31     // 2.绘制大圆
32     CGContextRef ctx = UIGraphicsGetCurrentContext();
33     CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, size.width, size.height));
34     [color set];
35     CGContextFillPath(ctx);
36
37     // 3.绘制小圆
38     CGFloat smallX = margin * 0.5;
39     CGFloat smallY = margin * 0.5;
40     CGFloat smallW = image.size.width;
41     CGFloat smallH = image.size.height;
42     CGContextAddEllipseInRect(ctx, CGRectMake(smallX, smallY, smallW, smallH));
43     //    [[UIColor greenColor] set];
44     //    CGContextFillPath(ctx);
45     // 4.指定可用范围, 可用范围的适用范围是在指定之后,也就说在在指定剪切的范围之前绘制的东西不受影响
46     CGContextClip(ctx);
47
48     // 5.绘图图片
49     [image drawInRect:CGRectMake(smallX, smallY, smallW, smallH)];
50
51     // 6.取出图片
52     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
53
54     return newImage;
55
56 }
57 @end

转载于:https://www.cnblogs.com/PJHome/p/5153122.html

ios图片剪切之圆形头像相关推荐

  1. iOS开发之裁剪圆形头像

    2019独角兽企业重金招聘Python工程师标准>>> - (void)viewDidLoad {[super viewDidLoad];//加载图片UIImage *image = ...

  2. ios 图片裁剪-制作圆形QQ头像

    /**  *  图片裁剪  裁剪原理:  先在控制器上确定一个区域,然后再把需要裁剪的图片放在该区域上面,超出区域的图片都不显示  *  *  @param rect  */ -(void) draw ...

  3. Flutter 图片组件Image、本地图片、远程图片、图片剪切、圆形图片

    1图片组件Image介绍 Flutter 中,我们可以通过 Image 组件来加载并显示图片 Image 的数据源可以是asset.文件.内存以及网络. 这里我们主要给大家讲两个 Image.asse ...

  4. iOS中类似QQ圆形头像 处理

    _sendImgView.image = model.sendImage; _sendImgView.layer.masksToBounds = YES; _sendImgView.layer.cor ...

  5. iOS 图片裁剪(用户头像裁剪)

    图片裁剪 把一张图片裁剪为指定的样式,比如常见的用户头像 思路: 在图片的基础上绘制时,需要创建一个位图上下文 确定裁剪区域(超出裁剪区域的都将被清除) 绘制图片 从位图上下文中获取图片 关闭上下文 ...

  6. 圆形头像的7种显示方法

    牙叔教程 简单易懂 效果展示 环境 手机: Mi 11 Pro Android版本: 11 Autojs版本: 9.0.11 图片形状: 正方形 圆形头像的7种显示方法 第1种: 使用Shapeabl ...

  7. ios UIImage 圆形图片剪切方案

    @interface UIImage (Resize)//按形状切割图像 - (UIImage*)cutImageWithRadius:(int)radius;@end //图片剪切 - (UIIma ...

  8. ios 裁剪圆形头像_iOS开发笔记:实现圆形头像

    初学iOS,记录一下自己遇到的一些问题,也希望能够对别人有所帮助 一般应用的个人头像如上图,圆形头像算是每款App中最常见的东西了,刚好最近有遇到这个问题,并且顺利解决了,其实很简单,调用layer这 ...

  9. 【iOS】Quartz2D图片剪切

    一.使用Quartz2D完成图片剪切 1.把图片显示在自定义的view中 先把图片绘制到view上.按照原始大小,把图片绘制到一个点上. 代码: 1 - (void)drawRect:(CGRect) ...

最新文章

  1. win10休眠_win10休眠重新开机黑屏进入不了系统
  2. 用VisualVM分析MyEclipse
  3. 序列化和反序列化的概述
  4. 捡到银行卡套取密码取现1万多元,犯了信用卡诈骗罪被判7个月
  5. web.config 指定的默认页失效
  6. python创建和删除文件
  7. 在Raspberry Pi上轻松设置.NET Core并使用VS Code进行远程调试
  8. Spring boot 第一章 Spring发展历史
  9. 10个Python进行数据分析的小技巧
  10. 图像处理、分析与机器视觉(基于labview)_基于3D技术的机器视觉解决方案
  11. ARTS打卡第14周
  12. 同事推荐的一部老电影 《魔鬼代言人》
  13. 各种未授权访问漏洞的复现与利用
  14. Clark与Park变换详解
  15. Js实现实时显示系统时间(获取当前时间并显示)
  16. 完成一场未完成的相遇:在树图区块链上邂逅元宇宙里的加密艺术《四季合鸣》...
  17. 【离散数学】数理逻辑 第一章 命题逻辑(5) 对偶式、对偶原理
  18. Pygame实战:BOOM 这有一款超刺激的扎气球游戏等你来玩~
  19. unsigned详讲(干货满满)
  20. webpack设置不打包文件

热门文章

  1. 水稻细菌性条斑病的分割与严重程度估计方法
  2. 鼠标控制程序,按住shift显示S,按住Ctrl显示C,按键盘显示D,松开键盘显示U
  3. 服务器android打包,Android rom解包打包工具
  4. mysql myisam表加索引_MyISAM和InnoDB的索引实现
  5. if else if else语句格式_if-else代码优化的八种方案
  6. 网站流量预测任务第一名解决方案:从GRU模型到代码详解时序预测
  7. python是什么时候出现的_python诞生于什么时候
  8. IOS开发笔记 - 关于导航标题栏的颜色问题
  9. 11gR2 Grid Infrastructure Installation prerequisites On LINUX
  10. 塞班、libc.lib、系统错误-1、KErrNotFound、内嵌sis、embedded sis