博客> 先来个low点的绘图~BitMap头像
先来个low点的绘图~BitMap头像
2017-10-17 08:46 评论:0 阅读:254 回眸一笑的羊蝎子
ios 头像 bitmap

今天上班的时候正在玩绘图,一时脑袋冷,竟然扣取头像写了30分钟,当时就跪了,遂写个小blog给自己提个醒,基础还得再扎实些呀。

所写内容太基础,各位大神就别花费精力捣鼓了~

//没有预览图,更没有结果图,都在心中。 //1.首先:得有一张目的图片 UIImage *image = [UIImage imageNamed:@"me"];

//2.其次:得有一个上下文的环境

// UIGraphicsBeginImageContextWithOptions(CGSizeMake(image.size.width, image.size.height),NO , 0.0);

//定义一个margin = 将要设置的线宽的一半
CGFloat margin = 5;

//定义一个上下文,宽高都是在图片的 宽高加上2倍的margin (宽:左右各5 高:上下各5)
CGSize imageContext = CGSizeMake(image.size.width + 2 * margin, image.size.height + 2 * margin);

UIGraphicsBeginImageContextWithOptions(imageContext ,NO , 0.0);

//3.绘制裁剪的路径
//圆形--OC

//3.1 获取当前上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();

//3.2 绘制路径
CGPoint center = CGPointMake(imageContext.width * 0.5, imageContext.height * 0.5);
CGFloat radius = MIN(image.size.width, image.size.height) * 0.5;

//第一个圆环
UIBezierPath *firstPath = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:0 endAngle:M_PI * 2 clockwise:YES];

//3.3 路径添加到当前上下文
CGContextAddPath(ctx, firstPath.CGPath);

//3.4 设置附一个圆环的线宽并渲染

CGContextSetLineWidth(ctx, 10);
[[UIColor redColor]set];

//将第一个圆环渲染出去后,上下文什么都没了
CGContextStrokePath(ctx);

//3.5 绘制第二个圆环
//圆心和半径都不变

UIBezierPath *secondPath = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:0 endAngle:M_PI * 2 clockwise:YES];

//3.6 将第二个路径添加到上下文
CGContextAddPath(ctx, secondPath.CGPath);

//4.根据裁剪后的路径裁剪上下文
CGContextClip(ctx);

//5.根据裁剪完的上下文绘制图片

// [image drawAtPoint:CGPointZero]; [image drawAtPoint:CGPointMake(margin, margin)];

//6.获取绘制完的图片
UIImage *clipedImage = UIGraphicsGetImageFromCurrentImageContext();

//7.关闭上下文
UIGraphicsEndImageContext();

//8.保存图片
UIImageWriteToSavedPhotosAlbum(clipedImage, nil, nil, nil);
收藏
0
sina weixin mail 回到顶部