layerRectConverted(fromMetadataOutputRect :)问题

时间:2017-06-22 11:39:10

标签: ios swift avcapturesession avcapture

在将预览图层坐标系中的矩形转换为坐标系时,不能达到100%的精度。所有矩形显示略低。 我使用layerRectConverted(fromMetadataOutputRect:)

这是我的代码:

let layers: [CAShapeLayer] = observations.map { observation in

            // calculate view rect
            var transformedRect = observation.boundingBox
            transformedRect.origin.y = 1 - transformedRect.origin.y
self.cameraLayer.layerRectConverted(fromMetadataOutputRect: transformedRect)

            let layer = CAShapeLayer()
            layer.frame = convertedRect 
            layer.borderColor = UIColor.red.cgColor
            layer.borderWidth = 1
            layer.cornerRadius = 3
            return layer
        }

结果 enter image description here

任何人都可以帮忙,我做错了什么?

1 个答案:

答案 0 :(得分:0)

很简单。 您需要按垂直方向翻转rect,但是您更改了原点y坐标并忘记了翻转rect本身。

只需增加高度

transformedRect.origin.y = 1 - transformedRect.origin.y - transformedRect.size.height

您将获得正确的包装盒位置。