ios Image裁剪成圓形的方法
阿新 • • 發佈:2019-02-08
我知道的實現方法有三種。
1、通過image mask來操作,需要新增mask目標圖片。
2、通過imageview的layer來操作
如下程式碼
UIImageView * imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"oiuyfdsa.png"]]; imageView.frame = CGRectMake(20.f, 20.f, 100.f, 100.f); imageView.layer.masksToBounds = YES; imageView.layer.cornerRadius = 50;
a.這種方法需要新增QuarztCore框架才能操作
b.cornerradus的確定問題
3、能過程式碼對畫布裁剪成圓形–》然後再將原始影象畫出來–》
-(UIImage*) circleImage:(UIImage*) image withParam:(CGFloat) inset { UIGraphicsBeginImageContext(image.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context, 2); CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor); CGRect rect = CGRectMake(inset, inset, image.size.width - inset * 2.0f, image.size.height - inset * 2.0f); CGContextAddEllipseInRect(context, rect); CGContextClip(context); [image drawInRect:rect]; CGContextAddEllipseInRect(context, rect); CGContextStrokePath(context); UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newimg; }
上面程式碼注意 如果裁剪後沒有使用 CGContextAddEllipseInRect(context, rect);
CGContextStrokePath(context); 這條程式碼 就會引起背景為白色時看不出來任務效果。
這裡是橢圓操作