2012-02-10 166 views
8

從前置攝像頭捕捉數據時,我總是收到鏡像圖像,如何獲取我在預覽窗口中看到的圖像。我已將videoMirrored設置爲TRUE。以下是代碼片段:從前置攝像頭捕捉時始終能看到鏡像iOS 5.0

AVCaptureConnection *lConnection = nil; 

    for (AVCaptureConnection *connection in [lHandle->m_output connections]) { 
    for (AVCaptureInputPort *port in [connection inputPorts]) { 
     if ([[port mediaType] isEqual:AVMediaTypeVideo]) { 
      lConnection = connection; 
      break; 
     } 
    } 
} 
if ([lConnection isVideoOrientationSupported]) 
    [lConnection setVideoOrientation:AVCaptureVideoOrientationPortrait]; 
if ([lConnection isVideoMirroringSupported]) 
    [lConnection setVideoMirrored:TRUE]; 

更改setVideoMirroredTrue/False也不會改變任何東西 (isVideoMirroringSupported返回成功)

+1

我敢肯定你的預覽窗口應該顯示鏡像視頻(在的感覺,因爲如果你正在尋找到了鏡子,讓你提高你的右臂並且顯示器右側的手臂上升) - 當您捕獲數據時,它是以這種方式進行鏡像的,或者與您的預覽窗口相比是鏡像的(因此,根據來自傳感器)? – Tommy 2012-02-10 12:28:12

+1

謝謝Tommy.Can你告訴我爲什麼設置SetVideoMirrored爲TRUE/FALSE不會改變任何事情。 – 2012-02-10 13:13:04

+0

謝謝@Tommy。你能告訴我爲什麼設置SetVideoMirrored爲TRUE/FALSE的原因不會改變任何事情。 – 2012-02-10 13:23:11

回答

7

用下面的代碼翻轉鏡像圖像。

UIImage * flippedImage = [UIImage imageWithCGImage:picture.CGImage scale:picture.scale orientation:UIImageOrientationLeftMirrored]; 
+0

如果您在風景中拍攝照片,這將不起作用。 – 2017-08-28 01:34:17

1

Swift版本:

let flippedImage = UIImage(CGImage: image.CGImage, scale: image.scale, orientation: .LeftMirrored)