如何使用UIBezierPath裁剪图像? [英] How to crop the image using UIBezierPath?
本文介绍了如何使用UIBezierPath裁剪图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从 UIBezierpath
关闭路径获取图像(参见图片)。我使用 drawRect
方法在 UIView
上绘制图像,并且还使用绘制线条drawRect
方法。
如何获得特定的封闭路径图像?请帮帮我。在此先感谢。
I want to get the image from the UIBezierpath
closed path(See the image). I draw the image on the UIView
using drawRect
method and also draw the lines are using the drawRect
method.
How can I get the particular closed path image? Please help me. Thanks in advance.
此代码用于绘制bezierpath。
This code used for draw the bezierpath.
UIBezierPath *aPath = [UIBezierPath bezierPath];
for (NSString *pointString in pointArray) {
if ([pointArray indexOfObject:pointString] == 0)
[aPath moveToPoint:CGPointFromString(pointString)];
else
[aPath addLineToPoint:CGPointFromString(pointString)];
}
[aPath closePath];
推荐答案
您可以使用 shapeLayer
为此。类似的东西,
You can use a shapeLayer
for that. Something like,
UIBezierPath *aPath = [UIBezierPath bezierPath];
for (NSString *pointString in pointArray) {
if ([pointArray indexOfObject:pointString] == 0)
[aPath moveToPoint:CGPointFromString(pointString)];
else
[aPath addLineToPoint:CGPointFromString(pointString)];
}
[aPath closePath];
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.path = aPath.CGPath;
[view.layer setMask:shapeLayer];//or make it as [imageview.layer setMask:shapeLayer];
//and add imageView as subview of whichever view you want. draw the original image
//on the imageview in that case
将其作为一个图片,
UIGraphicsBeginImageContext(view.bounds.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
image
应该有相应的图像。
这篇关于如何使用UIBezierPath裁剪图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文