2
我有一個應用程序,可以從AVCaptureDevice樣本緩衝區委託中查找QR查找器標記。現在我試圖在屏幕上放置盒子來覆蓋QR標記。但是,我無法在1280x720像素分辨率和cameraView大小之間轉換。從1280x720轉換到UIView尺寸
我想寫一個基於這些參數(和視圖座標系顛倒的事實)來轉換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變爲(我認爲這是enum'ed爲縱向。)由此看來,它應該更容易找到一個解決方案,因爲座標不會在不同的方向變化。
任何想法,編碼社區?