截取居中的方形图像

//截取居中的方形图像
- (UIImage *)cutPicture:(UIImage *)raw
{
    CGSize origImageSize = raw.size;
    CGRect newRect = CGRectMake(0, 0, mainW, mainW);
    
    float ratio = MAX(newRect.size.width / origImageSize.width, newRect.size.height / origImageSize.height);
    
    //创建透明位图上下文
    UIGraphicsBeginImageContextWithOptions(newRect.size, NO, 0.0);
    //创建圆角矩形的对象,这里设置圆角为0
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:newRect cornerRadius:0.0];
    //裁剪图形上下文
    [path addClip];
    
    //让图片在缩略图绘制范围内居中
    CGRect projectRect;
    projectRect.size.width = ratio * origImageSize.width;
    projectRect.size.height = ratio * origImageSize.height;
    projectRect.origin.x = (newRect.size.width - projectRect.size.width) / 2.0;
    projectRect.origin.y = (newRect.size.height - projectRect.size.height) / 2.0;
    
    //在上下文中绘制图片
    [raw drawInRect:projectRect];
    
    //从上下文获取图片,并复制给item
    UIImage *smallImage = UIGraphicsGetImageFromCurrentImageContext();
    
    //清理图形上下文
    UIGraphicsEndImageContext();
    
    return smallImage;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容