裁剪带圆环的圆形的图片步骤
2019独角兽企业重金招聘Python工程师标准>>>
裁剪带圆环的圆形的图片步骤:
1.加载图片
UIImage *image = [UIImage imageNamed:@"dst2"];
2.开启图形上下文对象begin(后需要关闭end)
因为圆环上下文的size比图片大一些。
CGFloat margin = 5;
CGSize ctxSize = CGSizeMake(image.size.width +2*margin , image.size.height + 2*margin);
UIGraphicsBeginImageContextWithOptions(ctxSize, YES, 0);
3.获取开启的上下文对象
CGContextRef ctx = UIGraphicsGetCurrentContext();
4.确定圆形的圆环的半径与圆心
CGPoint centerP = CGPointMake(ctxSize.width/2, ctxSize.height/2);
CGFloat radius = MIN(image.size.width, image.size.height)/2;
5.裁减圆形和绘制圆环。
/ 创建一个圆环/
UIBezierPath *pathLine = [UIBezierPath bezierPathWithArcCenter:centerP radius:radius startAngle:0 endAngle:2*M_PI clockwise:YES];
CGContextSetLineWidth(ctx, 10);
[[UIColor redColor]set];
CGContextAddPath(ctx, pathLine.CGPath);
CGContextDrawPath(ctx, kCGPathStroke);
/创建一个圆环
/裁减圆形
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:centerP radius:radius startAngle:0 endAngle:2*M_PI clockwise:YES];
CGContextAddPath(ctx, path.CGPath);
CGContextClip(ctx);
/裁减圆形 /
(注意:圆环在前,圆形在后,否则看不到圆环)
6.绘制图片
[image drawAtPoint:CGPointMake(margin, margin)];
7.获取裁剪后图片
UIImage *getImage = UIGraphicsGetImageFromCurrentImageContext();
//此时判断是否需要对图片进行适应屏幕的裁减。(比如长宽不等图片可能会出现压缩,需要裁剪成方形)
//7.截取图片(之前需要先将图片添加到图形上下文中,然后获取到再截取)
CGFloat x;
CGFloat y;
CGFloat w;
CGFloat h;
//a.当是竖屏照片时
if (getImage.size.height >=getImage.size.width) {
x = 0;
y = (getImage.size.height - 2*radius)/2;
}else{
//b.当时横屏照片时
y = 0;
x = (getImage.size.width - 2*radius)/2;
}
w = 2*radius;
h = w;
//为保证图片的正确显示,乘以屏幕缩放比
CGFloat scale = [UIScreen mainScreen].scale;
x *= scale;
y *= scale;
w *= scale;
h *= scale;
//截取 CG开头C语言。不用*
CGImageRef imageRef = CGImageCreateWithImageInRect(getImage.CGImage, CGRectMake(x, y, w, h));
//转换格式
getImage = [UIImage imageWithCGImage:imageRef];
8.关闭之前开启的上下文
UIGraphicsEndImageContext();
9.给imageView的image赋值。
转载于:https://my.oschina.net/u/2618362/blog/656014
裁剪带圆环的圆形的图片步骤相关推荐
- Android实现带圆环的圆形头像(转载)
其实设置圆头像很交单,一行代码: Glide.with(mContext).load("url").centerCrop().into(binding.supermarketIvH ...
- android圆环头像,Android实现带圆环的圆形头像
在最近写的一个天气APP中用到了圆形头像这样的一个样式,中间是圆形的头像(被圆形切割的图片),周围是一个带颜色的圆环.如下图所示,今天就来说一所它的实现过程. 它的实现也不是特别困难,其实就是用到了B ...
- android头像圆环,Android实现带圆环的圆形头像
在最近写的一个天气APP中用到了圆形头像这样的一个样式,中间是圆形的头像(被圆形切割的图片),周围是一个带颜色的圆环.如下图所示,今天就来说一所它的实现过程. 它的实现也不是特别困难,其实就是用到了B ...
- iOS自定义裁剪区域,正方形圆形图片头像裁剪,仿QQ头像裁剪,圆形遮罩,矩型遮罩
最近项目中用到了自定义图片裁剪区域的图片裁剪功能,自己写了一个,可能有诸多不完善的地方,请大家指正. 支持任意区域裁剪,9:16裁剪.16:9裁剪.1:1裁剪.圆形裁剪等等,总之裁剪框的大小,裁剪框的 ...
- html进度条圆圈渐变色,HTML5 canvas带渐变色的圆形进度条动画
jquery-circle-progress是一款带渐变色的圆形进度条动画特效jQuery插件.该圆形进度条使用的是HTML5 canvas来绘制圆形进度条及其动画效果,进度条使用渐变色来填充,效果非 ...
- Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
转载请注明地址:http://blog.csdn.net/xiaanming/article/details/10298163 很多的时候,系统自带的View满足不了我们功能的需求,那么我们就需要自己 ...
- Android 圆形/圆角图片的方法
Android 圆形/圆角图片的方法 眼下网上有非常多圆角图片的实例,Github上也有一些成熟的项目.之前做项目,为了稳定高效都是选用Github上的项目直接用.但这样的结束也是Android开发必 ...
- 用计算机修改图片或照片,如何利用电脑自带的画图工具修改图片的基本属性
大多数人可能对photoshop都很熟悉,也会熟练的运用,但是多数人可能都没有注意到电脑自带工具"画图",它不但但是画画功能,它还可以对图片做简单修改.下面小编就为大家介绍如何利用 ...
- html img 圆头像_纯CSS3炫酷圆形头像图片过滤特效
这是一款效果非常酷的纯CSS3炫酷圆形头像图片过滤特效.该特效将图片制作为圆形图片,以网格形式布局,带点击相应的分类按钮后,该类别的图片被放大显示,其它类别的图片被缩小,效果非常的不错. 制作方法 H ...
最新文章
- nodeJS之eventproxy源码解读
- 怎样将无线路由做成无线AP
- 怎么安装python3-如何装python3
- vb.net連接ACCESS数据库
- vmware 5.51 下安装Ubuntu Linux8.04安装vmware tools不成功
- 02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法
- 博主推荐【文件Hash校验工具V1.0 -免费版】
- 在批评数据湖的时候,你有没有想过,它并不是取代数据仓库的
- 5m独享网站服务器,您真的需要独享5m云服务器吗?一文让您了解云服务器带宽计算方法,从此不再花冤枉钱...
- apt-get出错,由于出现了太多错误,处理过程被终止
- 扩增子图表解读2散点图:组间整体差异分析(Beta多样性)
- 联想成全球PC业至尊
- 职场小人拉帮结派被孤立要如何处理
- SQLCE数据工具(Flyhoward Ltd SDF Viewer)
- 如何理解处理器、CPU、多处理器、内核、多核?
- python学习 - 标准库概览
- 咕咚vs悦跑圈的竞品分析
- 深度:传统服装品牌大量进入,老年身体机能变化催生数千亿中老年服装市场!
- 阿里新版java开发手册(2019华山版、2020泰山版)
- MongoDB地理空间移动演示