iOS开发之Quartz 2D实现流行的圆形头像
来源:互联网 发布:圣火明尊进阶数据 编辑:程序博客网 时间:2024/06/15 16:15
首先,让我们直接上效果图
这种效果在项目还是很常见的,第一张圆形图带白色边框,第二张是单纯的圆形图片,那要如何实现呢?
直接上代码:
/* 根据传进来的图片名,并制定生成圆形图片的边框,以及颜色返回所需的圆形图片 */// 参数说明:// name : 图片名称// borderWidth : 边框大小// borderColor : 边框颜色+ (instancetype)circleImageWithName:(NSString *)name borderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor{ // 加载原图 UIImage *oldImg = [UIImage imageNamed:name]; // 开启上下文 CGFloat imgW = oldImg.size.width + 2 * borderWidth; CGFloat imgH = oldImg.size.height + 2 * borderWidth; CGSize imgSize = CGSizeMake(imgW, imgH); UIGraphicsBeginImageContextWithOptions(imgSize, NO, 0.0); // 取得当前上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 画边框 [borderColor set]; CGFloat bigRadius = imgW * 0.5; CGFloat centerX = bigRadius; CGFloat centerY = bigRadius; CGContextAddArc(ctx, centerX, centerY, bigRadius, 0, M_PI * 2, 0); CGContextFillPath(ctx); // 小圆 CGFloat smallRadius = bigRadius - borderWidth; CGContextAddArc(ctx, centerX, centerY, smallRadius, 0, M_PI * 2, 0); CGContextClip(ctx); // 画图 [oldImg drawInRect:CGRectMake(borderWidth, borderWidth, oldImg.size.width, oldImg.size.height)]; // 取图 UIImage *newImg = UIGraphicsGetImageFromCurrentImageContext(); // 结束上下文 UIGraphicsEndImageContext(); return newImg;}
总结:我们完全可以自定义一个UIImage的category,将这个方法封装进去,这样就可以运用到我们的项目中去了,:-D
0 0
- iOS开发之Quartz 2D实现流行的圆形头像
- IOS之圆形头像的实现
- iOS开发之圆形头像
- iOS实现圆形头像
- iOS实现圆形头像
- iOS实现圆形头像
- iOS实现圆形头像
- 9、iOS开发之 Quartz-2d
- iOS 图像开发之Quartz 2D
- iOS:圆形头像和菱形头像的实现
- iOS 圆形头像如何实现
- iOS 圆形头像如何实现
- iOS开发之Quartz 2D实现图片加水印效果
- 【iOS】Quartz 2D绘制直线/长方形/椭圆/圆形
- IOS圆形头像的设置
- IOS开发(107)之Quartz 2D绘图
- iOS开发之quartz 2d绘图基础
- iOS开发之Quartz 2D绘图技术(一)
- UIScrollView 滚动视图 (实例)
- 扩展HT for Web之HTML5表格组件的Renderer和Editor
- HDU1856---More is better
- mysql 数据库优化总结
- 如何做到在adapter中监听实现跳转
- iOS开发之Quartz 2D实现流行的圆形头像
- CGRectContainsPoint的具体用法解释
- ubuntu sublime配置
- 手把手教你打造一个Material Design风格的App(四)
- 对不同隔离级别的理解
- 数值的整数次方(不考虑大数问题)
- 最大流模板2
- 第十二周 程序填空
- struts2+jsp+jquery+Jcrop实现图片裁剪并上传