• Quartz2D裁剪圆形头像


     // 0. 载入原有图片
        UIImage *image = [UIImage imageNamed:icon];
        
        // 1.创建图片上下文
        CGFloat margin = border;
        CGSize size = CGSizeMake(image.size.width + margin, image.size.height + margin);
        
        // YES 不透明 NO 透明
        UIGraphicsBeginImageContextWithOptions(size, NO, 0);
        // 2.绘制大圆
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, size.width, size.height));
        [color set];
        CGContextFillPath(ctx);
        
        // 3.绘制小圆
        CGFloat smallX = margin * 0.5;
        CGFloat smallY = margin * 0.5;
        CGFloat smallW = image.size.width;
        CGFloat smallH = image.size.height;
        CGContextAddEllipseInRect(ctx, CGRectMake(smallX, smallY, smallW, smallH));
        //    [[UIColor greenColor] set];
        //    CGContextFillPath(ctx);
        // 4.指点可用范围, 可用范围的适用范围是在指定之后,也就说在在指定剪切的范围之前绘制的东西不受影响
        CGContextClip(ctx);
        
        // 5.画图图片
        [image drawInRect:CGRectMake(smallX, smallY, smallW, smallH)];
        
        // 6.取出图片
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    
    能够将制作头像的代码加入为UIImage的分类以便于以后的调用
    
    @interface UIImage (GL)
    /**
     *  生成头像
     *
     *  @param icon   头像图片名称
     *  @param border 头像边框大小
     *  @param color  头像边框的颜色
     *
     *  @return 生成好的头像
     */
    + (instancetype)imageWithIcon:(NSString *)icon border:(NSInteger)border color:(UIColor *)color;
    @end
    

  • 相关阅读:
    PHP的后期静态绑定
    php的clone 浅拷贝
    python 从文件导入分类
    Yii2 主从 数据库
    什么是 jsonp ?
    为speedphp最新版添加 仿Yii 的简易版 数据验证 支持不同场景,自定义回调
    redis入门指南-安装redis
    composer -vvv
    依赖注入
    yii2-user
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5128594.html
Copyright © 2020-2023  润新知