之前写过图形上下文裁剪处理后制作头像那样的实现,是在UIView的drawRect里面实现的, 当然也可以在UIImage里面实现,这样就可以直接返回一个UIImage对象,直接可以拿来用。现在写的这个是关于位图上下文的裁剪。也是裁剪成一个圆形头像作为一个例子。

创建一个UIImage的分类,写一个类方法返回一张头像图片

+(UIImage *)circleImageViewWithImageName:(NSString *)imageNameborderWidth:(CGFloat)borderWidthborderColor:(UIColor *)borderColor
{//创建图片对象UIImage *image = [UIImage imageNamed:imageName];//创建位图上下文,创建的时候会自动开启位图上下文编辑状态UIGraphicsBeginImageContext(CGSizeMake(image.size.width, image.size.width));//因为裁剪操作下面都要用到当前的位图上下文,所以获取当前的位图上下文CGContextRef context = UIGraphicsGetCurrentContext();//设置裁剪圆的路径CGRect imageRect =CGRectMake(0, 0, image.size.width, image.size.width);CGContextAddEllipseInRect(context, imageRect);//进行裁剪CGContextClip(context);//将裁剪完的图片放进位图上下文中[image drawInRect:imageRect];//设置边框-设置颜色[borderColor set];//设置边框-设置宽度CGContextSetLineWidth(context, borderWidth);//设置边框-画圆CGContextAddEllipseInRect(context, imageRect);//渲染CGContextStrokePath(context);//创建UIImage对象接收位图上下文UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();//PS:要记得获取完图片之后再结束上下文的编辑,否则,先结束编辑的话就获取不到图片了!!//结束位图编辑状态UIGraphicsEndImageContext();//返回UIImage对象return newImage;
}

这样写方便以后用的时候就可以直接导入头文件使用了,例如现在Viewcontroller里面写的:

- (void)viewDidLoad {[super viewDidLoad];UIImage* image = [UIImage circleImageViewWithImageName:@"img" borderWidth:45 borderColor:[UIColor redColor]];UIImageView* imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.width)];imageView.image = image;[self.view addSubview:imageView];
}

运行效果:

本次博客代码

位图上下文 裁剪图片成一个圆形的头像相关推荐

  1. node.js sharp 裁剪图片方形为圆形,矩形

    var fs = require('fs'); var os = require('os'); var sharp = require('sharp'); var request = require( ...

  2. 微信小程序中裁剪图片以及压缩到指定尺寸并上传

    本文分为两个内容,分别是裁剪图片和压缩 引出问题 1.为何要裁剪图片 因为需要上传头像,但是每个型号的手机拍出来的照片尺寸都不太一样,不能统一,所以,希望在上传之前进行自主裁剪,保证上传到服务器上的尺 ...

  3. HTML5 本地裁剪图片

    最近有时间了解了下html5的各API,发现新浪微博的头像设置是使用canvas实现截图的,加之前段时间了解了下html5的File API使用File API 之FileReader实现文件上传更加 ...

  4. 裁剪带圆环的圆形的图片步骤

    2019独角兽企业重金招聘Python工程师标准>>> 裁剪带圆环的圆形的图片步骤: 1.加载图片 UIImage *image = [UIImage imageNamed:@&qu ...

  5. 微信小程序裁剪图片成圆形

    代码地址如下: http://www.demodashi.com/demo/14453.html 前言 最近在开发小程序,产品经理提了一个需求,要求微信小程序换头像,用户剪裁图片必须是圆形,也在git ...

  6. iOS自定义裁剪区域,正方形圆形图片头像裁剪,仿QQ头像裁剪,圆形遮罩,矩型遮罩

    最近项目中用到了自定义图片裁剪区域的图片裁剪功能,自己写了一个,可能有诸多不完善的地方,请大家指正. 支持任意区域裁剪,9:16裁剪.16:9裁剪.1:1裁剪.圆形裁剪等等,总之裁剪框的大小,裁剪框的 ...

  7. Android裁剪图片为圆形图片

    Android裁剪图片为圆形图片 http://blog.csdn.net/kkmike999/article/details/16359713 2013-11-16 19:15  3234人阅读  ...

  8. UIGraphicsBeginImageContext - 位图上下文

    UIGraphicsBeginImageContext 首先,先来认识一个UIGraphicsBeginImageContext,它会创建一个基于位图的上下文(context)(默认创建一个透明的位图 ...

  9. poi向word插入图片_如何使用word裁剪图片图形?如何使用word修整图片?

    Word中使用图片与图形的教程: 将图片添加到文档 Word支持从Internet或本地计算机插入图像.如果您能够复制图像,则可以将其粘贴到文档中.您可以使用计算机上存储的自己的图像,也可以从Inte ...

  10. 中如何将方形图片转换成圆形图片_【PS】PS中不可不知的实用技巧!你都掌握了吗?...

    今天给大家分享一些在PS中经常用到的实用小技巧,操作简单易上手. 01 拉伸图片人物不变形 在我们在PS里想要拉伸一些图片时,里面的人物往往会跟着一起变形,那么如何改变图片比例的同时,又不影响人物的形 ...

最新文章

  1. Java学习笔记(二)不定时更新
  2. 华为mate40计算机,原来拍摄还能这么玩?华为Mate40 Pro连接电脑+耳机,Vlog输出分分钟...
  3. implicit request ?
  4. 通用智能传感集线器(Sensorhub)介绍
  5. 判断大小_美人计 | 学会这招大小骨架判断法,我知道自己不是胖了
  6. 把爬取信息导出到mysql,关于爬虫学习的一些小小记录(四)——爬取数据存入数据库...
  7. php-fpm配置文件的优化
  8. java 简介及环境搭建配置,jdk安装
  9. ES6精华:解构赋值
  10. echarts 中国地图,tooltip,legend同时显示多组数据
  11. Android架构 armeabi、armeabi-v7a、arm64-v8a、x86详解
  12. paypal支付交易数据
  13. Android 指定宽高的ViewGroup
  14. 华为 eNSP启动设备AR1失败 错误代码40
  15. oracle 逗号连接表是相当于什么
  16. python进阶之进程池multiprocessing.Pool
  17. Linux No space left on device 磁盘空间不足
  18. EOS智能合约开发(三)EOS创建和管理账户
  19. 单剂量给药下仓室药物模型半衰期的计算
  20. Codeblocks的安装与配置

热门文章

  1. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(七)(数字图像基础))
  2. Linux下制作动图的软件,GIF制作教程 | 如何制作高清动图_什么值得买
  3. 阿拉伯数字转中文数字
  4. WPS调整一页中打印多页的设置使页码顺序正确
  5. hhkb mac设置_HHKB 键盘 使用攻略 Karabiner
  6. 向量叉乘公式_向量外积的高中数学运用
  7. Excel批量删除空白行
  8. from表单的作用、组成和用法
  9. 论坛mysql表设计_网站论坛如何制作—简单论坛数据库的设计与操作
  10. 微信公众号采集之免费采集公众号爆文工具