【发布时间】:2013-03-26 19:17:07
【问题描述】:
我有一个从 AVCaptureDevice 示例缓冲区委托中查找 QR 查找器标记的应用程序。现在我正试图在屏幕上放置框以覆盖 QR 标记。但是,我无法在 1280x720 像素分辨率和 cameraView 大小之间进行转换。
我正在尝试编写一个基于这些参数(以及视图坐标系颠倒的事实)转换 CGRect 的方法,但它不起作用。它也可能与相机设备的方向有关。这是我的转换方法代码:
-(CGRect) convertRect:(CGRect) oldRect From90DegreeRotatedCameraSize1280x720ToUIViewSize:(CGSize) viewSize
{
//remember that we are using a gravity of resize aspect fill
double xScale = viewSize.width / 720;
double yScale = viewSize.height / 1280;
if (xScale < yScale)
return CGRectMake(oldRect.origin.x * xScale, viewSize.height - oldRect.origin.y * xScale, oldRect.size.height * xScale, oldRect.size.width * xScale);
else
return CGRectMake(oldRect.origin.x * yScale, viewSize.height - oldRect.origin.y * yScale, oldRect.size.height * yScale, oldRect.size.width * yScale);
}
有人对这个相对简单的空间坐标问题有一个优雅的解决方案吗?
编辑-
我做了一个连接视频方向的 NSLog,结果它永远不会从 1 改变(我认为它被枚举为纵向方向。)从这里,应该更容易找到解决方案,因为坐标确实不同方向不变。
有什么想法吗,程序员社区?
【问题讨论】:
标签: xcode ios6 uikit core-graphics