如何将 CAShapeLayer 坐标转换为 CIRectangleFeature 以进行手动裁剪
How to convert CAShapeLayer coordinates to CIRectangleFeature for manual crop
我正在处理手动图像裁剪功能。为此,我使用四个坐标绘制 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)
我正在处理手动图像裁剪功能。为此,我使用四个坐标绘制 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)