我想从ios中的图像中裁剪一个椭圆。使用核心图像框架,我知道裁剪一个反应角区域。
使用核心图形,我可以裁剪椭圆区域。但是,裁剪图像的大小与原始图像的大小相同,因为我将蒙版应用于椭圆之外的区域。
因此,目标是从图像中裁剪椭圆区域,并且裁剪图像的大小不会超过该图像的矩形边界。
任何帮助将不胜感激。提前致谢。
我想从ios中的图像中裁剪一个椭圆。使用核心图像框架,我知道裁剪一个反应角区域。
使用核心图形,我可以裁剪椭圆区域。但是,裁剪图像的大小与原始图像的大小相同,因为我将蒙版应用于椭圆之外的区域。
因此,目标是从图像中裁剪椭圆区域,并且裁剪图像的大小不会超过该图像的矩形边界。
任何帮助将不胜感激。提前致谢。
您必须以正确的大小创建上下文,请尝试以下代码:
- (UIImage *)cropImage:(UIImage *)input inElipse:(CGRect)rect {
CGRect drawArea = CGRectMake(-rect.origin.x, -rect.origin.y, input.size.width, input.size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, rect.size.width, rect.size.height));
CGContextClip(ctx);
[input drawInRect:drawArea];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
也许您必须根据drawArea
自己的需要进行调整,因为我没有对其进行测试。