位图上下文 裁剪图片成一个圆形的头像
之前写过图形上下文裁剪处理后制作头像那样的实现,是在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];
}
运行效果:
本次博客代码
位图上下文 裁剪图片成一个圆形的头像相关推荐
- node.js sharp 裁剪图片方形为圆形,矩形
var fs = require('fs'); var os = require('os'); var sharp = require('sharp'); var request = require( ...
- 微信小程序中裁剪图片以及压缩到指定尺寸并上传
本文分为两个内容,分别是裁剪图片和压缩 引出问题 1.为何要裁剪图片 因为需要上传头像,但是每个型号的手机拍出来的照片尺寸都不太一样,不能统一,所以,希望在上传之前进行自主裁剪,保证上传到服务器上的尺 ...
- HTML5 本地裁剪图片
最近有时间了解了下html5的各API,发现新浪微博的头像设置是使用canvas实现截图的,加之前段时间了解了下html5的File API使用File API 之FileReader实现文件上传更加 ...
- 裁剪带圆环的圆形的图片步骤
2019独角兽企业重金招聘Python工程师标准>>> 裁剪带圆环的圆形的图片步骤: 1.加载图片 UIImage *image = [UIImage imageNamed:@&qu ...
- 微信小程序裁剪图片成圆形
代码地址如下: http://www.demodashi.com/demo/14453.html 前言 最近在开发小程序,产品经理提了一个需求,要求微信小程序换头像,用户剪裁图片必须是圆形,也在git ...
- iOS自定义裁剪区域,正方形圆形图片头像裁剪,仿QQ头像裁剪,圆形遮罩,矩型遮罩
最近项目中用到了自定义图片裁剪区域的图片裁剪功能,自己写了一个,可能有诸多不完善的地方,请大家指正. 支持任意区域裁剪,9:16裁剪.16:9裁剪.1:1裁剪.圆形裁剪等等,总之裁剪框的大小,裁剪框的 ...
- Android裁剪图片为圆形图片
Android裁剪图片为圆形图片 http://blog.csdn.net/kkmike999/article/details/16359713 2013-11-16 19:15 3234人阅读 ...
- UIGraphicsBeginImageContext - 位图上下文
UIGraphicsBeginImageContext 首先,先来认识一个UIGraphicsBeginImageContext,它会创建一个基于位图的上下文(context)(默认创建一个透明的位图 ...
- poi向word插入图片_如何使用word裁剪图片图形?如何使用word修整图片?
Word中使用图片与图形的教程: 将图片添加到文档 Word支持从Internet或本地计算机插入图像.如果您能够复制图像,则可以将其粘贴到文档中.您可以使用计算机上存储的自己的图像,也可以从Inte ...
- 中如何将方形图片转换成圆形图片_【PS】PS中不可不知的实用技巧!你都掌握了吗?...
今天给大家分享一些在PS中经常用到的实用小技巧,操作简单易上手. 01 拉伸图片人物不变形 在我们在PS里想要拉伸一些图片时,里面的人物往往会跟着一起变形,那么如何改变图片比例的同时,又不影响人物的形 ...
最新文章
- Java学习笔记(二)不定时更新
- 华为mate40计算机,原来拍摄还能这么玩?华为Mate40 Pro连接电脑+耳机,Vlog输出分分钟...
- implicit request ?
- 通用智能传感集线器(Sensorhub)介绍
- 判断大小_美人计 | 学会这招大小骨架判断法,我知道自己不是胖了
- 把爬取信息导出到mysql,关于爬虫学习的一些小小记录(四)——爬取数据存入数据库...
- php-fpm配置文件的优化
- java 简介及环境搭建配置,jdk安装
- ES6精华:解构赋值
- echarts 中国地图,tooltip,legend同时显示多组数据
- Android架构 armeabi、armeabi-v7a、arm64-v8a、x86详解
- paypal支付交易数据
- Android 指定宽高的ViewGroup
- 华为 eNSP启动设备AR1失败 错误代码40
- oracle 逗号连接表是相当于什么
- python进阶之进程池multiprocessing.Pool
- Linux No space left on device 磁盘空间不足
- EOS智能合约开发(三)EOS创建和管理账户
- 单剂量给药下仓室药物模型半衰期的计算
- Codeblocks的安装与配置