2016-10-03 27 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() 
誰もがCAください、

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 

しかし、まだ何も起こらないの行を追加しました:

は、今私はそうのようなプレビューズームしイメージを保存しようとしましたn正確にズームした画像を保存する方法を教えてください。

答えて

1

問題はpreviewLayer.contentsScaleが1であるということですので、あなたは、あなたが

videoConnection?.videoScaleAndCropFactor = 2.4 
+0

素晴らしいに設定する必要があります。1.

videoScaleAndCropFactorを設定している、私は昨日考え出したが、更新するのを忘れました質問!しかし、ありがとう! –

関連する問題