0

我正在使用 AVMetaData API 来提取 AVMetadataFaceObject 的边界。打印到控制台时,此 CGRect 具有以下值:bounds={0.2,0.3 0.4x0.5}. 我在将其映射到显示在脸上的 UIView 时遇到了很多麻烦。我可以为我的特定屏幕硬编码一些转换值,以使其粗略地出现在正确的位置,但我想要一个解决方案,它可以在任何屏幕尺寸的 previewView 中显示的面上显示 UIView。

有谁知道如何根据 previewView 的大小将这些映射到屏幕 UIView 的框架?

4

1 回答 1

0

您应该能够获取捕获区域的大小,我们称之为“captureSize”,然后执行以下操作:

CGRect viewRect;
viewRect.origin.x = bounds.origin.x * captureSize.width;
viewRect.origin.y = bounds.origin.y * captureSize.height;
viewRect.size.width = bounds.size.width * captureSize.width;
viewRect.size.height = bounds.size.height * captureSize.height;

现在,这一切都取决于您的 previewView 的设置方式以及它是否具有任何内容缩放等,但应该让您了解转换。

于 2015-08-25T22:58:59.173 回答