两种方法生成圆形图片

现在常见的app头像都是采用圆形的图片,但是原始图片通常都是矩形的。所以需要处理一下。

一共有两种方法,可以让图片看上去是圆形的。注意,仅仅是看上去。本质上,圆形以外的区域实际上是填充了透明像素。

第一种方法很简单,只需要几行代码:

UIImageView* imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"canna"]];
imageView.layer.masksToBounds = YES;
imageView.layer.cornerRadius = imageView.frame.size.width * 0.5;

这方法的好处是简单易行,但是也有缺点,就是性能较差,所以这不是通常选择的方案。

第二种方案,利用圆形路径对图像进行裁剪。这种方法性能较好,所以这种方案比较常用。

这个步骤比较多,但是总体还是比较简单,只是对UIImage类做了一个扩展,归纳了如下几步:


// 1.开启一个透明上下文(必须选择透明上下文,否则圆形区域之外将会被填充上其他颜色)

UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);

// 2.加入一个圆形路径到图形上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);

CGContextAddEllipseInRect(ctx, rect);

// 3.裁剪

CGContextClip(ctx);

// 4.绘制图像

[self drawInRect:rect];

// 4.取得图像

UIImage* circleImage = UIGraphicsGetImageFromCurrentImageContext();

// 5.关闭上下文

UIGraphicsEndImageContext();

上述的步骤,添加封装成为一个方法,通过UIImage category的方式提供。

效果图如下:


两种方法生成圆形图片_第1张图片


代码已经写好,可以直接下载使用。代码下载地址:点击这里下载 

你可能感兴趣的:(两种方法生成圆形图片)