2016-10-07 12 views
0

私はカスタムカメラでユーザーがフィルタやステッカー(TextCameraアプリなど)を追加してソーシャルフィードで共有できるアプリを開発しようとしています。 しかし私は最初の問題を発見しました。AVCaptureVideoPreviewLayerに表示される内容を保存します

私はAVCaptureVideoPreviewLayerでプレビューを表示し、写真を撮ってUiImageViewの別のビューコントローラに渡しますが、2番目の画像は最初の画像よりも大きいです。

私はこの機能で画像のサイズを変更しようとした:この機能で

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

私は、第二ビューコントローラのストーリーボードイメージビューでアスペクトフィットを使用しようとしたが、結果は同じです。

ここで私のエラー私を助けてくれている皆さん、ありがとう!

答えて

0

AVCaptureVideoPreviewLayerフレームは画面のフレーム(UIScreen.mainScreen().bounds)と同じだと思うし、その上に「写真を撮る」黒いビューを追加しました。代わりに、AVCaptureVideoPreviewLayerのフレームを変更する必要があります。

あなたのケース(私が何を考えて):

enter image description here

緑色の長方形がAVCaptureVideoPreviewLayerフレームであり、赤1黒ビューフレームであると仮定すると。したがって、緑の四角形の上(上)を覆います。

彼らは次のようになり行います

enter image description here

助け希望。

+0

これは解決策ですか? :) もしそうでなければ、コメントしてください –

+0

いいえ、私もストーリーボードにこの設定があります。 :( –

+0

は、あなたが初期化方法を示したコードとセットアップAVCaptureVideoPreviewLayerを提供してくださいすることができます –

関連する問題