iOS开发 --制作圆形的头像(UIImage)

有时候我们的应用需要登录,登录后的用户信息中有用户头像,以前使用的方形图片比较丑陋,现在基本所有的应用都是使用圆形都头像了,但是用户上传上来都图片不一定是圆形的(基本上都不是),这个时候就需要我们程序员来处理这些图片了,处理的方法有两种(根据需求),第一种是只要普通颜色的边框(无边框也可以)且圆形的头像、第二种是需要花纹或者其他图片的边框 且 圆形的头像。

以下为学习者提供的文章,不能用于商业利益。

一 、普通颜色的边框(无边框也可以)且圆形的头像

代码:

UIImage * image = [UIImage imageNamed:@"icon_huo"];

UIImageView* imageV =self.imageView;

imageV.layer.masksToBounds=YES;

imageV.layer.cornerRadius=imageV.frame.size.width /2;/**如果需要边框,请把下面2行注释去掉*///imageV.layer.borderColor = [UIColor purpleColor].CGColor;//imageV.layer.borderWidth = 10;imageV.image=  image;

二、花纹或者其他图片的边框

为了更好的开发,把制作圆形的头像功能封装起来,首先为UIIamge新建一个Gategory(分类)

UIImage+XG.h 文件

#import@interfaceUIImage (XG)/**

*  @param icon        头像图片名称

*  @param borderImage  边框的图片名称

*  @param border      边框大小

*

*  @return 圆形的头像图片*/+ (instancetype)imageWithIconName:(NSString *)icon borderImage:(NSString *)borderImage border:(int)border;@end

UIImage+XG.m 文件

#import"UIImage+XG.h"@implementationUIImage (XG)+ (instancetype)imageWithIconName:(NSString *)icon borderImage:(NSString *)borderImage border:(int)border{//头像图片UIImage * image =[UIImage imageNamed:icon];//边框图片UIImage * borderImg =[UIImage imageNamed:borderImage];//CGSize size = CGSizeMake(image.size.width + border, image.size.height +border);//创建图片上下文UIGraphicsBeginImageContextWithOptions(size, NO,0);//绘制边框的圆CGContextRef context =UIGraphicsGetCurrentContext();

CGContextAddEllipseInRect(context, CGRectMake(0,0, size.width, size.height));//剪切可视范围CGContextClip(context);//绘制边框图片[borderImg drawInRect:CGRectMake(0,0, size.width, size.height)];//设置头像frameCGFloat iconX = border /2;

CGFloat iconY= border /2;

CGFloat iconW=image.size.width;

CGFloat iconH=image.size.height;//绘制圆形头像范围CGContextAddEllipseInRect(context, CGRectMake(iconX, iconY, iconW, iconH));//剪切可视范围CGContextClip(context);//绘制头像[image drawInRect:CGRectMake(iconX, iconY, iconW, iconH)];//取出整个图片上下文的图片UIImage *iconImage =UIGraphicsGetImageFromCurrentImageContext();returniconImage;

}@end

效果:

在需要制作圆形头像或图片的地方导入   #import "UIImage+XG.h"

UIImage * image = [UIImage imageWithIconName:@"icon_huo"borderImage:@"border"border:40];

self.imageView.image=  image;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,142评论 1 6
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,551评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • 老大天天带我们出去嗨,聚餐唱歌~任大家在饭桌上热情洋溢,与每个陌生人高谈阔论,谈笑风生。 但其实我对任何人都提不起...
    英国梨与小苍兰阅读 261评论 1 0