2017-03-08 84 views
0

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

+0

我想你尝试裁剪图像shaplayer? –

+0

嗨,谢谢你的回复。 我正在使用形状图层进行用户可视化。我打算做的是获得用户形成的这四个形状的点,并相应地裁剪图像w.r.t.这些点。 我在将这些UIKit底点转换为CoreImage点时遇到了问题。 –

+0

为您提供形状图层初始化 –

回答

0

集图像的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) 
+0

谢谢,它工作得很好。 这些截图和由此产生的图像: 文件:///Users/Swapnil/Desktop/IMG_2082.PNG 文件:///Users/Swapnil/Desktop/IMG_2083.JPG 我需要更多一点的帮助你。 –

+0

@SwapnilDhapte我无法显示您的结果。我怎么帮你? –

+0

有没有什么办法可以保存只有渲染部分的图像。不与白色背景。 因为我想它适用CIPerspectiveTransform。 –

相关问题