2016-10-03 23 views
1

所以,我磁體如何使縮放效果與CATransform3DMakeScale(2.4,2.4,2.4),但現在我已經試圖拯救Zoome預覽消息(代碼爲我做縮放)問題:如何使用AVFoundation將預覽(縮放)圖像保存爲照片?

// init camera device 
    let captureDevice : AVCaptureDevice? = initCaptureDevice() 
    print("camera was initialized") 
    // Prepare output 
    initOutput() 
    if (captureDevice != nil) { 
     let deviceInput : AVCaptureInput? = initInputDevice(captureDevice: captureDevice!) 
     if (deviceInput != nil) { 
      initSession(deviceInput: deviceInput!) 
      // Preview Size 
      let previewLayer: AVCaptureVideoPreviewLayer = AVCaptureVideoPreviewLayer(session: self.session) 
      previewLayer.frame = self.view.bounds 
      previewLayer.transform = CATransform3DMakeScale(2.4, 2.4, 2.4) 
      imagePreviewScale = previewLayer.contentsScale 
      self.view.layer.addSublayer(previewLayer) 
      self.session?.startRunning() 

現在我試圖挽救像這樣的預覽縮放圖像:

let videoConnection : AVCaptureConnection? = self.imageOutput?.connection(withMediaType: AVMediaTypeVideo) 
    if (videoConnection != nil) { 

     videoConnection?.videoScaleAndCropFactor = imagePreviewScale 

     self.imageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: { (imageDataSampleBuffer, error) -> Void in 
      if (imageDataSampleBuffer != nil) { 
            // Capture JPEG 

       let imageData : NSData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(imageDataSampleBuffer) as NSData 
       // JPEG 
       let image = UIImage(data: imageData as Data) 

,並添加

imagePreviewScale = previewLayer.contentsScale 

但還是沒有任何反應行了,請人CA告訴我如何保存精確縮放的圖片?

回答

1

問題是previewLayer.contentsScale是1,所以你設置videoScaleAndCropFactor爲1

你需要將其設置爲

videoConnection?.videoScaleAndCropFactor = 2.4 
+0

真棒,我已經想通了昨天,但忘了更新這個問題!但是,謝謝! –

相關問題