效果图


  • 将一张图片剪切成圆形
  • 在图片周围显示指定宽度和颜色的边框

实现思路


  • 效果图中主要由不同尺寸的两大部分组成

    • 蓝色的背景区域,尺寸等于图片的尺寸加上边框的尺寸
    • 图片区域,尺寸等于图片的尺寸
  • 绘制一个圆形背景区域,用边框颜色填充
  • 绘制一个圆形的图片区域,设置不显示超出的部分

实现步骤


  • 加载需要显示的图片

    UIImage *image = [UIImage imageNamed:@"资源中图片的名字"];
  • 初始化用到的变量

    //图片的宽宽高
    CGFloat imageWH = image.size.width;
    //边界的宽度
    CGFloat border = 1;
    //背景区域的宽高
    CGFloat ovalWH = imageWH + 2 * border;
  • 开启图形上下文(尺寸为背景区域的尺寸

    //设置图形上下文的尺寸
    CGSize size = CGSizeMake(ovalWH, ovalWH);
    //开启图形上下文
    UIGraphicsBeginImageContextWithOptions(size, NO, 0);
  • 绘制背景区域

    //绘制封闭的圆形路径
    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, ovalWH, ovalWH)];
    //设置填充颜色
    [[UIColor blueColor] set];
    //渲染所绘制的区域
    [path fill];
  • 绘制图片区域

    //绘制封闭的圆形区域
    UIBezierPath *clipPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border, border, imageWH, imageWH)];
    //设置超出区域的内容剪掉(不显示)
    [clipPath addClip];
    //见图片绘制到圆形区域内,从点(border, border)开始
    [image drawAtPoint:CGPointMake(border, border)];
  • 从图形上下文中取出绘制的图片

    UIImage *clipImage = UIGraphicsGetImageFromCurrentImageContext();
  • 将图片显示到imageView上

    self.imageView.image = clipImage;
  • 关闭图形上下文

    UIGraphicsEndImageContext();
 
 

OC - 10.使用Quartz2D绘制个性头像的更多相关文章

  1. OC - 9.使用Quartz2D绘制下载进度条

    效果图 实现思路 要实现绘图,通常需要自定义一个UIView的子类,重写父类的- (void)drawRect:(CGRect)rect方法,在该方法中实现绘图操作 若想显示下载进度,只需要实例化自定 ...

  2. python 爬取微信好友列表和个性签名,绘制个性签名云图

    python爬取微信好友列表和个性签名,绘制个性签名云图 1. 简要介绍 本次实验主要用到下面几个库 : 1)itchat---用于微信接口,实现生成QR码,用于微信扫描登陆 2)re(正则化)--- ...

  3. 教你制作挂件头像 | 小程序七十二变之 canvas 绘制国旗头像

    昨天朋友圈被「请给我一面国旗@微信官方」刷屏,虽然知道是假的,但是从另一个角度来看,弄清楚如何实现更有趣. 1.canvas 这就不得不提到小程序中的 API canvas,H5 中也是有 canva ...

  4. Quartz2D裁剪圆形头像

    // 0. 载入原有图片 UIImage *image = [UIImage imageNamed:icon]; // 1.创建图片上下文 CGFloat margin = border; CGSiz ...

  5. canvas绘制圆角头像

    如果你想绘制的网页包含一个圆弧形的头像的canvas图片,但是头像本身是正方形的,需要的方法如下:首先, 拿到头像在画布上的坐标和宽高:(具体怎么获取不在此做具体介绍) 使用canvas绘制圆弧动画 ...

  6. iOSQuartz2D-03-定制个性头像

    效果图 将一张图片剪切成圆形 在图片周围显示指定宽度和颜色的边框 实现思路 效果图中主要由不同尺寸的两大部分组成 蓝色的背景区域,尺寸等于图片的尺寸加上边框的尺寸 图片区域,尺寸等于图片的尺寸 绘制一 ...

  7. OC - 11.使用Quartz2D剪裁图片并保存

    实现效果 操作步骤 绘制一个矩形框,弹出一个alertView,提示是否保存图片 点击"是",将图片保存到相册 在相册中查看保存的图片 效果图 实现思路 在控制器的view上添加一 ...

  8. GDI+_绘制QQ头像

    Public Sub I_touxiang(ByVal file As String, ByVal Graphics As Long, Width As Long, Height As Long, O ...

  9. android自定义View绘制圆形头像与椭圆头像

    要实现这两种效果,需要自定义View,并且有两种实现方式.   第一种: public class BitmapShaders extends View {     private  BitmapSh ...

随机推荐

  1. Ruby on Rails创始人DHH谈如何进行混合移动APP开发

    混合型APP兼具原生型APP软件良好用户交互体验的优势和网页型APP软件跨平台开发的优势,并且其开发成本和网页型APP软件接近,其开发效率也远高于原生型APP软件.混合型APP已经被众多企业所认可.最 ...

  2. VS2015开发的Office Addin部署,安装时报错:无法解析属性“type”的值。

    用VS2012开发的Outlook插件,在多数情况下安装正常,但是在某些机器上,安装时出现以下错误: 打开VSTOInstaller.exe.config文件查看,其中内容是: <?xml ve ...

  3. 【HDOJ】3329 The Flood

    超简单BFS. /* 3329 */ #include <iostream> #include <queue> #include <cstdio> #include ...

  4. 数据结构(LCT动态树):BZOJ 1036: [ZJOI2008]树的统计Count

    1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 12266  Solved: 4945[Submit ...

  5. OpenGL图形管线和坐标变换

    转:http://blog.csdn.net/zhulinpptor/article/details/5897102 1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(Mo ...

  6. HDOJ(HDU) 2132 An easy problem

    Problem Description We once did a lot of recursional problem . I think some of them is easy for you ...

  7. MVC传值方式及优缺点

    说在前面文章转自 http://www.cxyclub.cn/n/49493/ 在MVC控件器传递多个Model到视图,使用ViewData,ViewBag,部分视图,TempData,ViewMod ...

  8. 【最短路】埃雷萨拉斯寻宝(eldrethalas) 解题报告

    问题来源 BYVoid魔兽世界模拟赛 [问题描述] 一万两千年前,当精灵还是在艾萨拉女王的统治下的时候,辛德拉就是是女王手下一名很有地位的法师了.他受任建造了一座城市,来保存女王的法师们进行魔法研究的 ...

  9. kvm编译安装及常见问题解决

    一.KVM的编译安装 1.安装基本系统和开发工具 1.1 编译内核 mkdir /root/kvm cd /root/kvm wget http://www.kernel.org/pub/linux/ ...

  10. poj1323

    题目大意: 预测游戏 假如有MR人,包括你自己,玩一个特殊的卡片游戏,开始的时候,没有参与者接收到N张卡片,这pip卡片是一个正整数最少M*N,没有两张pip卡片是一样的,在一圈后,每个玩家选择一张卡 ...