標籤:ref void etc image circle get bounds ima decode
/*
- (id)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder]) {
// 設定圖片的主圖層圓角
self.iconView.layer.cornerRadius = 8;
// 設定超出主圖層的部分剪下
// self.iconView.clipsToBounds = YES;
self.iconView.layer.masksToBounds = YES;
NSLog(@"initWithCoder");
}
return self;
}
*/
- (void)awakeFromNib
{
// 設定圖片的主圖層圓角
self.iconView.layer.cornerRadius = 8;
// 設定超出主圖層的部分剪下
self.iconView.clipsToBounds = YES;
}
#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;}
ios圖片剪下