如何获得非矩形旋转UIImage的“边缘”?

时间:2018-01-25 08:23:30

标签: ios swift uiimageview

我有一个内部有png图像的UIImageView。 ImageView是可旋转的(通过RotationRecognizer和UIImageView.transform)。

pic: image with frame

现在我想检测一下(即)左图像边缘是否超出它的超视图 - 当然只有非透明内容! 我试图通过

来掩盖图像
let maskLayer = CALayer()
maskLayer.contents = image.cgImage
maskLayer.frame = CGRect(origin: CGPoint.zero, size: image.size)
self.layer.mask = maskLayer

蒙版仅用于查看所需内容,但对于检测图像边缘的“帧”没有影响。我没有找到任何“基于面具”的检测和希望,你可以帮助我。

pic: image without frame

1 个答案:

答案 0 :(得分:0)

您可以使用外部工具创建一个仅覆盖图像的凸包。然后旋转并定位凸包与图像完全相同。如果任何一点位于屏幕矩形之外,那么你的面具也在屏幕之外。

凸包中要转换图像蒙版的顶点数取决于您希望测试的准确程度。

https://en.wikipedia.org/wiki/Convex_hull