ios 制作方形头像

/*

从相册选取一张图片作为头像,作为头像的图片希望是方形的,所以需要对图片进行处理,

图片宽大于高,则填充上下,使宽高一致,

图片高大于宽,则填充左右,使宽高一致

*/

-(UIImage *)cutCenterImage:(UIImage *)image {
    CGSize imageSize = image.size;
    if (imageSize.width == imageSize.height)
        return image;

    CGRect rect;
    CGSize contentSize;
    //初始化图片的显示位置,以及UIGraphicsBeginImageContext的显示范围
    if (imageSize.height > imageSize.width) {
        contentSize = CGSizeMake(imageSize.height, imageSize.height);
        float leftMargin = (imageSize.height - imageSize.width) * 0.5;
        rect = CGRectMake(leftMargin, 0, imageSize.width, imageSize.height);
    }else{
        contentSize = CGSizeMake(imageSize.width, imageSize.width);
        float topMargin = (imageSize.width - imageSize.height) * 0.5;
        rect = CGRectMake(0, topMargin, imageSize.width, imageSize.height);
    }
    CGImageRef imageRef = image.CGImage;
    CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect);
    UIImage *tmp = [[UIImage alloc] initWithCGImage:imageRefRect];
    CGImageRelease(imageRefRect);

    // 新建一个UIGraphicsBeginImageContext,设置好背景颜色,把图片放到相应位置,截图,生成新的方形图片
    UIGraphicsBeginImageContext(contentSize);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
    UIRectFill(CGRectMake(0, 0, contentSize.width, contentSize.height));
    [tmp drawInRect:rect];
    tmp = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return tmp;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值