iOS开发之裁剪圆形头像
生活随笔
收集整理的這篇文章主要介紹了
iOS开发之裁剪圆形头像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
-?(void)viewDidLoad?{[super?viewDidLoad];//加載圖片UIImage?*image?=?[UIImage?imageNamed:@"菲哥"];//獲取圖片尺寸CGSize?size?=?image.size;//開啟位圖上下文UIGraphicsBeginImageContextWithOptions(size,?NO,?0);//創建圓形路徑UIBezierPath?*path?=?[UIBezierPath?bezierPathWithOvalInRect:CGRectMake(0,?0,?image.size.width,?image.size.height)];//設置為裁剪區域[path?addClip];//繪制圖片[image?drawAtPoint:CGPointZero];//獲取裁剪后的圖片_imageView.image?=?UIGraphicsGetImageFromCurrentImageContext();//關閉上下文UIGraphicsEndImageContext();}再來一張菲哥的頭像
如果想要在圓形頭像外加一個邊框,思路是先繪制一個大圓,然后在這個圓尺寸范圍內繪制一個圖片大小的圓。
-?(void)viewDidLoad?{[super?viewDidLoad];//加載圖片UIImage?*image?=?[UIImage?imageNamed:@"大菲哥"];//設置邊框寬度CGFloat?border?=?3;CGFloat?imageWH?=?image.size.width;//計算外圓的尺寸CGFloat?ovalWH?=?imageWH?+?2?*?border;//開啟上下文UIGraphicsBeginImageContextWithOptions(image.size,?NO,?0);//畫一個大的圓形UIBezierPath?*path?=?[UIBezierPath?bezierPathWithOvalInRect:CGRectMake(0,?0,?ovalWH,?ovalWH)];[[UIColor?orangeColor]set];[path?fill];//設置裁剪區域UIBezierPath?*path1?=?[UIBezierPath?bezierPathWithOvalInRect:CGRectMake(border,?border,?imageWH,?imageWH)];[path1?addClip];//繪制圖片[image?drawAtPoint:CGPointMake(border,?border)];//從上下文中獲取圖片_imageView.image?=?UIGraphicsGetImageFromCurrentImageContext();//關閉上下文UIGraphicsEndImageContext();}效果如圖:
屏幕截圖:
原理就是把屏幕上控件的layer渲染到上下文中
-?(void)viewDidLoad?{[super?viewDidLoad];//開啟上下文UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,?NO,?0);//獲取上下文CGContextRef?ctx?=?UIGraphicsGetCurrentContext();//把控件上的圖層渲染到上下文[self.view.layer?renderInContext:ctx];//獲取上下文中的圖片UIImage?*image?=?UIGraphicsGetImageFromCurrentImageContext();//關閉上下文UIGraphicsEndImageContext();//保存圖片到相冊UIImageWriteToSavedPhotosAlbum(image,?nil,?nil,?nil);}轉載于:https://my.oschina.net/shenhuniurou/blog/652202
總結
以上是生活随笔為你收集整理的iOS开发之裁剪圆形头像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios 中的关联对象
- 下一篇: 前端开发跨浏览器计算页面大小、滚动高度