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,144評論 1 6
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,573評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,147評論 5 13
  • 老大天天帶我們出去嗨,聚餐唱歌~任大家在飯桌上熱情洋溢,與每個陌生人高談闊論,談笑風生。 但其實我對任何人都提不起...
    英國梨與小蒼蘭閱讀 262評論 1 0