在iOS中,我試圖繪製一個剪輯圖像。我想剪裁是從一個邊緣彎曲到最遠的相對邊緣。下圖以紅色顯示最終圖像的邊框。在這個例子中,曲線從左下到右上。從邊緣的UIBezier路徑曲線
這是我目前寫的代碼。我唯一的問題是這種方法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;
}
UPDATE:
繼承人我得到的結果和我更新的代碼。我需要一些進一步的幫助......
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領域,並沒有完全理解所有的參數是什麼。你可以用示例代碼更新你的答案,這樣我就可以開始工作,然後我可以從那裏調整它。謝謝 – cnotethegr8
@ cnotethegr8這可能是一個很好的機會來看看[文檔](https://developer.apple.com/library/ios/documentation/uikit/reference/UIBezierPath_class/Reference/Reference.html#//apple_ref/ occ/instm/UIBezierPath/addArcWithCenter:radius:startAngle:endAngle:順時針:) –
@DavidRönnqvist該文檔不會幫助我。它是我現在需要的細節。我不知道如何完成曲線。我會用我更新的代碼更新我的問題。 – cnotethegr8