zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/django'
    mac 安装pip
    同学公司倒闭了
    web开发中的字体选择(同事分享)
    svg 学习笔记
    用highchaarts做股票分时图
    highcharts,highStock 中文图表配置
    为什么使用 npm Scripts 构建项目
    JS 浮点型计算的精度问题 推荐的js 库 推荐的类库 Numeral.js 和 accounting.js
    HTML代码转换为JavaScript字符串
  • 原文地址:https://www.cnblogs.com/mancong/p/6138104.html
Copyright © 2011-2022 走看看