博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发_图片裁剪
阅读量:5368 次
发布时间:2019-06-15

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

主控制器的关键代码:

ViewController.m

#import "ViewController.h"#import "UIImage+ZR.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIImageView *iconV;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        UIImage *newImage = [UIImage circleImage:@"me" borderWith:3 borderColor:[UIColor greenColor]];    self.iconV.image = newImage;    }@end

 

创建UIImage分类文件:

UIImage+ZR.h

#import 
@interface UIImage (ZR)+(instancetype)circleImage:(NSString *)name borderWith:(CGFloat)borderWith borderColor:(UIColor *)borderColor;@end

UIImage+ZR.m

#import "UIImage+ZR.h"@implementation UIImage (ZR)+(instancetype)circleImage:(NSString *)name borderWith:(CGFloat)borderWith borderColor:(UIColor *)borderColor{        UIImage *oldImage = [UIImage imageNamed:name];    //2.开启上下文    CGFloat imageW = oldImage.size.width + 2*borderWith;    CGFloat imageH = oldImage.size.height + 2*borderWith;    CGSize imageSize = CGSizeMake(imageH, imageW);        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 - borderWith;    CGContextAddArc(ctx, centerX, centerY, smallRadius, 0, M_PI *2, 0);    //裁剪(后面画的东西才会受影响)    CGContextClip(ctx);    //6.画图    [oldImage drawInRect:CGRectMake(borderWith, borderWith, oldImage.size.width, oldImage.size.height)];        //7.取图    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    //8.结束上下文    UIGraphicsEndImageContext();        return newImage;}@end

 

转载于:https://www.cnblogs.com/xuanzhangran123/p/5153959.html

你可能感兴趣的文章
ES6思维导图
查看>>
第四周作业
查看>>
20151121
查看>>
线段重叠 (思维好题)
查看>>
Codeforces Round #413 C. Fountains (线段树的创建、查询、更新)
查看>>
SBuild 0.1.5 发布,基于 Scala 的构建系统
查看>>
WordPress 3.5 RC3 发布
查看>>
DOM扩展札记
查看>>
primitive assembly
查看>>
浅谈localStorage的用法
查看>>
Ad Exchange基本接口和功能
查看>>
Angular ui-router的常用配置参数详解
查看>>
软考知识点梳理--项目评估
查看>>
把特斯拉送上火星的程序员,马斯克!
查看>>
三测单
查看>>
MyBatis 缓存
查看>>
SQL中left outer join与inner join 混用时,SQL Server自动优化执行计划
查看>>
mac下python实现vmstat
查看>>
jxl.dll操作总结
查看>>
成员函数对象类的const和非const成员函数的重载
查看>>