如何将CAShapeLayer坐标转换为CIRectangleFeature以进行手动裁剪

我正在处理手动图像裁剪function。 为了绘制CAShapeLayer,我们使用了四个坐标topLeft,topRight,bottomRight和bottomLeft。 用户可以平移点并select裁剪区域。 我被困在将这些点转换为核心图像坐标,并进一步裁剪与CIPerspectiveTransform。

将图像设置为imageView并使用形状图层遮罩imageView。

self.imageView = img imageView.layer.mask = shapeLayer // set here your shape layer 

现在你的imageView有裁剪图像。

从当前上下文获取图像如下

 UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false, 0); imageView.layer.render(in: UIGraphicsGetCurrentContext()!) let image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // check cropping image let resultImageView = UIImageView(frame: self.view.frame) resultImageView.image = image self.view.addSubview(resultImageView)