把iOS應用里邊的頭像或者照片裁剪成圓角

jopen 10年前發布 | 46K 次閱讀 IOS iOS開發 移動開發

在項目里,經常會用到圓角的圖片,把寫的分類分享給大家

創建一個UIImage的分類,把代碼粘過去就OK

 

#import <UIKit/UIKit.h>

@interface UIImage (DY)

  • (instancetype)circleImageWithName:(NSString )name borderWidth:(CGFloat)borderWidth borderColor:(UIColor )borderColor;

@end


import "UIImage+DY.h"

@implementation UIImage (DY)

  • (instancetype)circleImageWithName:(NSString )name borderWidth:(CGFloat)borderWidth borderColor:(UIColor )borderColor { // 1.加載原圖 UIImage *oldImage = [UIImage imageNamed:name];

    // 2.開啟上下文 CGFloat imageW = oldImage.size.width + 2 borderWidth; CGFloat imageH = oldImage.size.height + 2 borderWidth; CGSize imageSize = CGSizeMake(imageW, imageH); UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);

    // 3.取得當前的上下文 CGContextRef ctx = UIGraphicsGetCurrentContext();

    // 4.畫邊框(大圓) [borderColor set]; CGFloat bigRadius = imageW 0.5; // 大圓半徑 CGFloat centerX = bigRadius; // 圓心 CGFloat centerY = bigRadius; CGContextAddArc(ctx, centerX, centerY, bigRadius, 0, M_PI 2, 0); CGContextFillPath(ctx); // 畫圓

    // 5.小圓 CGFloat smallRadius = bigRadius - borderWidth; CGContextAddArc(ctx, centerX, centerY, smallRadius, 0, M_PI * 2, 0); // 裁剪(后面畫的東西才會受裁剪的影響) CGContextClip(ctx);

    // 6.畫圖 [oldImage drawInRect:CGRectMake(borderWidth, borderWidth, oldImage.size.width, oldImage.size.height)];

    // 7.取圖 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    // 8.結束上下文 UIGraphicsEndImageContext();

    return newImage; }

@end</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!