iOS如何裁剪圓形頭像
本文實(shí)例為大家介紹了iOS裁剪圓形頭像的詳細(xì)代碼,供大家參考,具體內(nèi)容如下
- (void)viewDidLoad {
[super viewDidLoad];
//加載圖片
UIImage *image = [UIImage imageNamed:@"菲哥"];
//獲取圖片尺寸
CGSize size = image.size;
//開(kāi)啟位圖上下文
UIGraphicsBeginImageContextWithOptions(size, NO, 0);
//創(chuàng)建圓形路徑
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
//設(shè)置為裁剪區(qū)域
[path addClip];
//繪制圖片
[image drawAtPoint:CGPointZero];
//獲取裁剪后的圖片
_imageView.image = UIGraphicsGetImageFromCurrentImageContext();
//關(guān)閉上下文
UIGraphicsEndImageContext();
}
再來(lái)一張菲哥的頭像

如果想要在圓形頭像外加一個(gè)邊框,思路是先繪制一個(gè)大圓,然后在這個(gè)圓尺寸范圍內(nèi)繪制一個(gè)圖片大小的圓。
- (void)viewDidLoad {
[super viewDidLoad];
//加載圖片
UIImage *image = [UIImage imageNamed:@"大菲哥"];
//設(shè)置邊框?qū)挾?
CGFloat border = 3;
CGFloat imageWH = image.size.width;
//計(jì)算外圓的尺寸
CGFloat ovalWH = imageWH + 2 * border;
//開(kāi)啟上下文
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
//畫(huà)一個(gè)大的圓形
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, ovalWH, ovalWH)];
[[UIColor orangeColor]set];
[path fill];
//設(shè)置裁剪區(qū)域
UIBezierPath *path1 = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border, border, imageWH, imageWH)];
[path1 addClip];
//繪制圖片
[image drawAtPoint:CGPointMake(border, border)];
//從上下文中獲取圖片
_imageView.image = UIGraphicsGetImageFromCurrentImageContext();
//關(guān)閉上下文
UIGraphicsEndImageContext();
}
效果如圖:

屏幕截圖代碼:
原理就是把屏幕上控件的layer渲染到上下文中
- (void)viewDidLoad {
[super viewDidLoad];
//開(kāi)啟上下文
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0);
//獲取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//把控件上的圖層渲染到上下文
[self.view.layer renderInContext:ctx];
//獲取上下文中的圖片
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
//關(guān)閉上下文
UIGraphicsEndImageContext();
//保存圖片到相冊(cè)
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- IOS開(kāi)發(fā)之為視圖繪制單(多)個(gè)圓角實(shí)例代碼
- IOS實(shí)現(xiàn)圓形圖片效果的兩種方法
- IOS 圓球沿著橢圓軌跡做動(dòng)畫(huà)
- iOS漸變圓環(huán)旋轉(zhuǎn)動(dòng)畫(huà)CAShapeLayer CAGradientLayer
- iOS實(shí)現(xiàn)圓角箭頭矩形的提示框
- 詳解iOS 裁剪圓形圖像并顯示(類(lèi)似于微信頭像)
- IOS設(shè)置按鈕為圓角的示例代碼
- iOS實(shí)現(xiàn)帶文字的圓形頭像效果
- iOS中修改UISearchBar圓角的小技巧分享
- iOS新增繪制圓的方法實(shí)例代碼
相關(guān)文章
詳解iOS開(kāi)發(fā)中UItableview控件的數(shù)據(jù)刷新功能的實(shí)現(xiàn)
這篇文章主要介紹了詳解iOS開(kāi)發(fā)中UItableview控件的數(shù)據(jù)刷新功能的實(shí)現(xiàn),代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-12-12
iOS開(kāi)發(fā)網(wǎng)絡(luò)篇—實(shí)現(xiàn)大文件的多線(xiàn)程斷點(diǎn)下載
iOS開(kāi)發(fā)中經(jīng)常會(huì)用到文件的下載功能,這篇文章主要介紹了iOS開(kāi)發(fā)網(wǎng)絡(luò)篇—實(shí)現(xiàn)大文件的多線(xiàn)程斷點(diǎn)下載,今天咱們來(lái)分享一下思路。2016-11-11
IOS打開(kāi)照相機(jī)與本地相冊(cè)選擇圖片實(shí)例詳解
這篇文章主要介紹了IOS打開(kāi)照相機(jī)與本地相冊(cè)選擇圖片實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06
iOS數(shù)據(jù)持久化KeyChain數(shù)據(jù)操作詳解
這篇文章主要為大家介紹了iOS數(shù)據(jù)持久化KeyChain,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
iOS應(yīng)用中UISearchDisplayController搜索效果的用法
這篇文章主要介紹了iOS應(yīng)用中UISearchDisplayController搜索效果的用法,包括點(diǎn)擊搜索出現(xiàn)黑條問(wèn)題的解決方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-02-02
IOS中無(wú)限滾動(dòng)Scrollview效果
這篇文章主要為大家詳細(xì)介紹了IOS中無(wú)限滾動(dòng)Scrollview效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02
詳解iOS通過(guò)ASIHTTPRequest提交JSON數(shù)據(jù)
這篇文章主要介紹了詳解iOS通過(guò)ASIHTTPRequest提交JSON數(shù)據(jù),對(duì)代碼進(jìn)行了詳細(xì)的講解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12
MacOS系統(tǒng)下Unity啟動(dòng)黑屏的解決方法
最近發(fā)現(xiàn)了一個(gè)問(wèn)題,unity一打開(kāi)就黑屏,通過(guò)查找相關(guān)的資料終于解決了,所以下面這篇文章主要給大家介紹了關(guān)于在MacOS系統(tǒng)下Unity啟動(dòng)黑屏的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-01-01

