首页 > 系统 > iOS > 正文

iOS如何将图片裁剪成圆形

2020-07-26 01:29:24
字体:
来源:转载
供稿:网友

本文实例为大家分享了iOS将图片裁剪成圆形的具体代码,供大家参考,具体内容如下

原图:

圆形图片裁剪效果:

裁剪成带边框的圆形图片:

核心代码:

#import <UIKit/UIKit.h>@interface UIImage (image)/** * 生成一张圆形图片 * * @param image    要裁剪的图片 * * @return 生成的圆形图片 */+ (UIImage *)imageWithClipImage:(UIImage *)image;/** * 生成一张带有边框的圆形图片 * * @param borderW   边框宽度 * @param borderColor 边框颜色 * @param image    要添加边框的图片 * * @return 生成的带有边框的圆形图片 */+ (UIImage *)imageWithBorder:(CGFloat)borderW color:(UIColor *)borderColor image:(UIImage *)image;@end
#import "UIImage+image.h"@implementation UIImage (image)+ (UIImage *)imageWithClipImage:(UIImage *)image{+   //1.开启跟原始图片一样大小的上下文  UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);  //2.设置一个圆形裁剪区域  //2.1绘制一个圆形  UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, image.size.width, image.size.height)];  //2.2.把圆形的路径设置成裁剪区域  [path addClip];//超过裁剪区域以外的内容都给裁剪掉  //3.把图片绘制到上下文当中(超过裁剪区域以外的内容都给裁剪掉)  [image drawAtPoint:CGPointZero];  //4.从上下文当中取出图片  UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  //5.关闭上下文  UIGraphicsEndImageContext();  return newImage;}+ (UIImage *)imageWithBorder:(CGFloat)borderW color:(UIColor *)borderColor image:(UIImage *)image{  //1.开启一个上下文  CGSize size = CGSizeMake(image.size.width + 2 * borderW, image.size.height + 2 * borderW);  UIGraphicsBeginImageContextWithOptions(size, NO, 0);  //2.绘制大圆,显示出来  UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, size.width, size.height)];  [borderColor set];  [path fill];  //3.绘制一个小圆,把小圆设置成裁剪区域  UIBezierPath *clipPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(borderW, borderW, image.size.width, image.size.height)];  [clipPath addClip];  //4.把图片绘制到上下文当中  [image drawAtPoint:CGPointMake(borderW, borderW)];  //5.从上下文当中取出图片  UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  //6.关闭上下文  UIGraphicsEndImageContext();  return newImage;}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表