2016-10-07 28 views
0

我正在嘗試開發一個自定義相機的應用,用戶可以在其中添加過濾器或貼紙(如在TextCamera應用中)並共享社交饋送。 但我發現我的第一個問題。保存用戶在AVCaptureVideoPreviewLayer中看到的信息

我使用AVCaptureVideoPreviewLayer向用戶顯示預覽,拍攝照片並將其傳遞給UiImageView中的另一個視圖控制器,但第二張圖片比第一張圖片大。

我試圖使用此函數來調整圖片大小:

func resize(image: UIImage) -> UIImage { 
     let size = image.size 
     let newWidth = CGFloat(size.width) 
     let newHeight = CGFloat(size.height - blackBottomTab.bounds.size.height) 

     let newSize = CGSizeMake(newWidth,newHeight) 
     let rect = CGRectMake(0, 0, newSize.width, newSize.height) 

     UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0) 
     image.drawInRect(rect) 
     let newImage = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 

     return newImage 
} 

在該函數I減去從圖像高度的黑色視圖(按鈕下)的高度。但我的結果是不同的(見附圖)。

This is my preview with a black view under the button

This is the photo taken larger than preview one

我還試圖用縱橫Fit在所述第二視圖控制器的故事板圖像視圖,但結果是相同的。

我的錯誤在哪裏?感謝所有幫助我的人!

回答

0

我認爲AVCaptureVideoPreviewLayer框架與屏幕的框架相同(UIScreen.mainScreen().bounds),並且在其上添加了「拍攝照片」黑色視圖。相反,您應該更改AVCaptureVideoPreviewLayer的框架。

你的情況下,(我認爲):

enter image description here

假設綠色矩形是AVCaptureVideoPreviewLayer框架和紅色爲黑色視圖幀。所以它覆蓋了綠色矩形的頂部。

使它們看起來像這樣:

enter image description here

希望這有助於。

+0

這是解決方案嗎? :) 如果不是,請發表評論 –

+0

沒有艾哈邁德,我也有這個配置在我的故事板。 :( –

+0

可以請你提供展示這些代碼如何初始化和設置AVCaptureVideoPreviewLayer –

相關問題