九 iOS之 图片剪裁

介绍图片剪裁,以剪裁圆形为例

普通剪裁

这里写图片描述

带圆环的图片

这里写图片描述


拖入一个UIImageView,取名“imageView”到view中
  • 裁剪出一个普通圆形图片
//0 加载图片
    UIImage * image = [UIImage imageNamed:@"阿狸"];
    //1 开启位图上下文,跟图片尺寸一样大
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
    //2 设置圆形裁剪区域(改动此方法可改变裁剪形状)
    UIBezierPath * path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
    //3 把路径设置为剪裁区域
    [path addClip];
    //3 绘制图片
    [image drawAtPoint:CGPointZero];
    //4 从上下文中获取图片
    UIImage * imageNew = UIGraphicsGetImageFromCurrentImageContext();
    //5 关闭上下文
    UIGraphicsEndImageContext();

    self.imageView.image = imageNew;
  • 裁剪出带圆环的图片(给UIImage添加一个类目方法)
/**
 裁剪一个带圆环的图片

 @param image 图片
 @param borderWidth 圆环宽度
 @param color 圆环颜色
 @return 裁剪完成的图片
 */
+(UIImage*)imageWithClipImage:(UIImage*)image borderWidth:(CGFloat)borderWidth borderColor:(UIColor*)color
{
    //图片的高度和宽度
    CGFloat imageWH = image.size.width;
    //圆环的宽度
    CGFloat border = borderWidth;
    //大圆形的宽度和高度
    CGFloat ovalWH = imageWH + 2 * border;
  //1、开启上下文
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(ovalWH, ovalWH), NO, 0);
    //2、画大圆
    UIBezierPath * path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, ovalWH, ovalWH)];
    [color set];

    [path fill];

    //3、设置剪裁区域(需先设置)
    UIBezierPath * clipPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border, border, imageWH, imageWH)];
    [clipPath addClip];

    //4.绘制图片
    [image drawAtPoint:CGPointMake(border, border)];

    //5、获取图片
    UIImage * clipImage = UIGraphicsGetImageFromCurrentImageContext();
    //6、关闭上下文
    UIGraphicsEndImageContext();


    return clipImage;
}

github demo : PictureCutDemo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值