iOS开发之裁剪圆形头像
生活随笔
收集整理的這篇文章主要介紹了
iOS开发之裁剪圆形头像
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
-?(void)viewDidLoad?{[super?viewDidLoad];//加載圖片UIImage?*image?=?[UIImage?imageNamed:@"菲哥"];//獲取圖片尺寸CGSize?size?=?image.size;//開啟位圖上下文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();}再來一張菲哥的頭像
如果想要在圓形頭像外加一個邊框,思路是先繪制一個大圓,然后在這個圓尺寸范圍內(nèi)繪制一個圖片大小的圓。
-?(void)viewDidLoad?{[super?viewDidLoad];//加載圖片UIImage?*image?=?[UIImage?imageNamed:@"大菲哥"];//設(shè)置邊框?qū)挾菴GFloat?border?=?3;CGFloat?imageWH?=?image.size.width;//計(jì)算外圓的尺寸CGFloat?ovalWH?=?imageWH?+?2?*?border;//開啟上下文UIGraphicsBeginImageContextWithOptions(image.size,?NO,?0);//畫一個大的圓形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];//開啟上下文UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,?NO,?0);//獲取上下文CGContextRef?ctx?=?UIGraphicsGetCurrentContext();//把控件上的圖層渲染到上下文[self.view.layer?renderInContext:ctx];//獲取上下文中的圖片UIImage?*image?=?UIGraphicsGetImageFromCurrentImageContext();//關(guān)閉上下文UIGraphicsEndImageContext();//保存圖片到相冊UIImageWriteToSavedPhotosAlbum(image,?nil,?nil,?nil);}轉(zhuǎn)載于:https://my.oschina.net/shenhuniurou/blog/652202
總結(jié)
以上是生活随笔為你收集整理的iOS开发之裁剪圆形头像的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios 中的关联对象
- 下一篇: 前端开发跨浏览器计算页面大小、滚动高度