iOS开发 - 化圆为方(将圆形图片切成正方形)

原图
勾股定理算(起点坐标)
圆中裁方

需求:将一张圆形的图片切出中间最大的正方形(说白了就是),使用勾股定理得出:高h = image.size.height / sqrtf(2)、(x, y) 坐标为 (sqrt(2) * h - h) / 2【相等:x=y】

/*
 圆形图居中裁剪 image 为正方形
 */
+ (UIImage *)centerClipImage:(UIImage *)image {
    
    if (!image) return nil;
    CGRect rect = CGRectZero;
    CGFloat h = image.size.height / sqrtf(2);
     // 经过勾股定理推算出,(x, y) 坐标为 (sqrt(2) * h - h) / 2
    CGFloat xy = (sqrt(2) * h - h) / 2 ;
    rect = CGRectMake(xy, xy, h, h);
    CGImageRef cg = CGImageCreateWithImageInRect(image.CGImage, rect);
    UIImage *clippedImage = [UIImage imageWithCGImage:cg];
    CGImageRelease(cg);
    return clippedImage;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容