博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios图片剪切
阅读量:7253 次
发布时间:2019-06-29

本文共 1744 字,大约阅读时间需要 5 分钟。

/*

- (id)initWithCoder:(NSCoder *)aDecoder

{

    if (self = [super initWithCoder:aDecoder]) {

        // 设置图片的主图层圆角

        self.iconView.layer.cornerRadius = 8;

        // 设置超出主图层的部分剪切

//        self.iconView.clipsToBounds = YES;

        self.iconView.layer.masksToBounds = YES;

        NSLog(@"initWithCoder");

    }

    return self;

}

 */

 

 

- (void)awakeFromNib

{

    // 设置图片的主图层圆角

    self.iconView.layer.cornerRadius = 8;

    // 设置超出主图层的部分剪切

    self.iconView.clipsToBounds = YES;

 

}

 

#import "UIImage+DY.h"@implementation UIImage (DY)+ (instancetype)circleImageWithName:(NSString *)name borderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor{    // 1.加载原图    UIImage *oldImage = [UIImage imageNamed:name];        // 2.开启上下文    CGFloat imageW = oldImage.size.width + 2 * borderWidth;    CGFloat imageH = oldImage.size.height + 2 * borderWidth;    CGSize imageSize = CGSizeMake(imageW, imageH);    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);        // 3.取得当前的上下文    CGContextRef ctx = UIGraphicsGetCurrentContext();        // 4.画边框(大圆)    [borderColor set];    CGFloat bigRadius = imageW * 0.5; // 大圆半径    CGFloat centerX = bigRadius; // 圆心    CGFloat centerY = bigRadius;    CGContextAddArc(ctx, centerX, centerY, bigRadius, 0, M_PI * 2, 0);    CGContextFillPath(ctx); // 画圆        // 5.小圆    CGFloat smallRadius = bigRadius - borderWidth;    CGContextAddArc(ctx, centerX, centerY, smallRadius, 0, M_PI * 2, 0);    // 裁剪(后面画的东西才会受裁剪的影响)    CGContextClip(ctx);        // 6.画图    [oldImage drawInRect:CGRectMake(borderWidth, borderWidth, oldImage.size.width, oldImage.size.height)];        // 7.取图    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();        // 8.结束上下文    UIGraphicsEndImageContext();        return newImage;}

 

 

 

转载于:https://www.cnblogs.com/seeworld/p/6098668.html

你可能感兴趣的文章
Beer Refrigerator
查看>>
hadoop输入分片计算(Map Task个数的确定)
查看>>
TYVJ P1008 传球游戏
查看>>
MVC基础
查看>>
【BZOJ】 Hash Killer I II III
查看>>
为什么st2 chrome无法显示api中的例子
查看>>
setPreferredSize的用法
查看>>
centos6.6 下 安装 nginx
查看>>
Python 3.6 -win64环境安装PIL模块
查看>>
redis事务需要注意的坑------RedisConnectionFailureException
查看>>
SPOJ 4110 Fast Maximum Flow (最大流模板)
查看>>
ECMAScript面向对象(二)——之创建对象方法总结
查看>>
面试题6--利用前序和中序遍历重构二叉树--递归方法
查看>>
Oracle的SQL
查看>>
步步为营:Asp.Net客户端存Cookie服务端取
查看>>
git实践:对比svn
查看>>
1 管理入门
查看>>
C#递归遍历指定目录下的所有文件(包括子目录下的文件)
查看>>
SpringMVC的工作流程
查看>>
JS比较好用的一些方法搜集
查看>>