【发布时间】:2013-11-26 07:54:23
【问题描述】:
在 iOS 中,我正在尝试绘制剪裁的图像。我希望剪辑从一个边缘弯曲到最远的相对边缘。下图以红色显示,即最终图像的边界。在这个例子中,曲线从左下角到右上角。
这是我目前编写的代码。我唯一的问题是这种方法bezierPathWithRoundedRect:byRoundingCorners:cornerRadii: 不能弯曲到我需要的范围。
- (UIImage *)roundCorneredImage:(UIImage *)image radius:(CGFloat)radius {
CGRect imageRect = CGRectZero;
imageRect.size = image.size;
UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, [UIScreen mainScreen].scale);
CGSize size = CGSizeMake(radius, radius);
[[UIBezierPath bezierPathWithRoundedRect:imageRect byRoundingCorners:UIRectCornerBottomRight cornerRadii:size] addClip];
[image drawInRect:imageRect];
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
更新:
这是我得到的结果和我更新的代码。我需要一些进一步的帮助...
UIBezierPath* bezier = [UIBezierPath bezierPath];
[bezier moveToPoint:CGPointMake(0, 0)];
[bezier addLineToPoint:CGPointMake(0, imageRect.size.height)];
[bezier addArcWithCenter:CGPointMake(imageRect.size.width / 2, imageRect.size.height / 2)
radius:imageRect.size.height / 2
startAngle:M_PI / 2
endAngle:0
clockwise:NO];
[bezier addLineToPoint:CGPointMake(0, 0)];
[bezier addClip];
【问题讨论】:
标签: ios uibezierpath