2015-09-21 162 views
1

我正在使用UIImagePickerController拍照。完整尺寸的照片我使用這種方法使圖像與相機視圖相同

var cameraAspectRatio : CGFloat = 4.0/3.0; 
var imageWidth = floorf(Float(screenSize.width * cameraAspectRatio)); 
var data = Float(screenSize.height)/imageWidth 
var scale = CGFloat(ceilf((data * 10.0)/10.0)) 

cameraViewTransform = CGAffineTransformMakeScale(scale, scale) 

但捕獲圖像之後,我在相機層看見觀點與相片不同(照片取入更多個視圖,因此它是更大的)

我想要製作照片,並使用整個全屏覆蓋圖輸出相同比例和視圖的照片。 你能建議一些嗎?

+0

所以我需要與我在相機中看到的相同圖像,但不是全尺寸 –

+0

您有沒有可能找到解決方案?我有同樣的問題 – Matt

回答

0

我把幫助從這個鏈接在我的項目之一:UIImagePickerController doesn't fill screen

希望這有助於。

+1

我看到了這個答案,並用它來填滿整個屏幕,但還有另外一個問題 - 我認爲拍照是縮放的,而我得到的圖像不是,所以它們是不同的 –

0

訣竅是讓視圖提供視頻預覽而不是過度掃描屏幕,並且處於正確的縱橫比。

猜測將是在兩個地方,你必須有一個看看:

  1. AVCaptureVideoPreviewLayer的previewLayer屬性。
  2. AVCaptureSession的sessionPreset

如果是後者的AVCaptureSessionPresetPhoto類型的幀計算似乎OK(因爲這是在格式4:3),但仔細檢查該位。

然後previewLayer應該是AVLayerVideoGravityResize,因爲這會填滿預覽以適合正確調整大小的視圖。

相關問題