我正在使用AVMetaData API来提取AVMetadataFaceObject的边界。打印到控制台时,此CGRect具有以下值:bounds={0.2,0.3 0.4x0.5}
。我在将这个映射到显示在脸上的UIView时遇到了相当大的麻烦。我可以为我的特定屏幕硬编码一些转换值,使其粗略地位于正确的位置,但我想要一个解决方案,在我的previewView中显示的任何屏幕尺寸上显示UIView。
有没有人知道如何根据预览视图的大小将这些映射到屏幕上的UIView的帧?
答案 0 :(得分: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的设置方式以及它是否有任何内容缩放等,但应该让您了解转换。