[九九Tips] -正方形图片用Quartz2D处理成圆形

[九九Tips]- http://www.jianshu.com/users/bab86b3e8aa3/latest_articles

正方形图片用Quartz2D处理成圆形

方法

新建一个图形上拿下文

在图形上下文里面添加一个圆

按照圆进行裁剪

将想要显示的图片放入圆形中,多余部分就被剪掉了.

步骤示意图

[九九Tips] -正方形图片用Quartz2D处理成圆形_第1张图片
圆形头像的制作.png

代码

包装成UIImage分类,返回圆形图片代码

- (instancetype)circleImage
{
    // 开启图形上下文
    UIGraphicsBeginImageContext(self.size);
    
    // 上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    // 添加一个圆
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
    CGContextAddEllipseInRect(ctx, rect);
    
    // 裁剪
    CGContextClip(ctx);
    
    // 绘制图片
    [self drawInRect:rect];
    
    // 获得图片
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    
    // 关闭图形上下文
    UIGraphicsEndImageContext();
    
    return image;
}

注意:不建议使用图层(layer.cornerRadius)画圆.图片多的时候特别消耗内存.

你可能感兴趣的:([九九Tips] -正方形图片用Quartz2D处理成圆形)