• iOS_UIImage_裁切圆形头像


    github地址: https://github.com/mancongiOS/UIImage.git

    UIImage的Cagetory

    UIImage+ImageCircle.h

    - (UIImage *)imageClicpCircleWithRect:(CGRect)rect;

    UIImage+ImageCircle.m

    #import "UIImage+ImageCircle.h"
    
    @interface View : UIView
    @property (nonatomic, strong) UIImage * image;
    @end
    
    @implementation View
    
    - (void)drawRect:(CGRect)rect {
        
        CGContextRef contextRef = UIGraphicsGetCurrentContext();
        CGContextSaveGState(contextRef);
        
        // Ellipse --> 椭圆的
        CGContextAddEllipseInRect(contextRef, CGRectMake(rect.size.width / 4, rect.size.height / 4, rect.size.width / 2, rect.size.height / 2));
        CGContextClip(contextRef);
        CGContextFillPath(contextRef);
        [self.image drawAtPoint:CGPointMake(100, 0)];
        
        CGContextRestoreGState(contextRef);
    }
    @end
    
    @implementation UIImage (ImageCircle)
    
    - (UIImage *)imageClicpCircleWithRect:(CGRect)rect {
        
        View * myView = [[View alloc] init];
        myView.image = self;
        
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        
        myView.frame = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
        myView.backgroundColor = [UIColor orangeColor];
        [myView.layer renderInContext:context];
        
        UIImage * imageNew = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
        return imageNew;
    }
    
    @end

    使用:

    - (UIImageView *)imageView {
        if (_imageView == nil) {
            self.imageView = [[UIImageView alloc] init];
            self.imageView.backgroundColor = [UIColor redColor];
            
            
            UIImage * image = [UIImage imageNamed:@"1.jpg"];
            // 裁剪出来一个在原图中心点,半径为四分之一原图宽高最小值的圆.
            
            CGFloat imageSizeMin = MIN(image.size.width, image.size.height);
            
            CGFloat circleImageWH = imageSizeMin;
            CGFloat circleImage_x = (image.size.width - circleImageWH) / 2;
            CGFloat circleImage_y = (image.size.height - circleImageWH) / 2;
            
    
            self.imageView.image = [image imageClicpCircleWithRect:CGRectMake(circleImage_x, circleImage_y, circleImageWH, circleImageWH)];
    
        } return _imageView;
    }
  • 相关阅读:
    SQL如何获取上一条..下一条..首尾记录
    PHP判断浏览器类型的代码
    html命名规范
    使用JavaScript JS 获取label for 标签的值和for值
    PNG透明兼容IE6的几种方法
    冉茂锋同学去上课了
    十一戒,自勉
    语录
    CreateThread最后还是调用的ntdll.dll里面的ZwCreateThread
    InitializeObjectAttributes
  • 原文地址:https://www.cnblogs.com/mancong/p/6138104.html
Copyright © 2020-2023  润新知