从前置摄像头 iOS 5.0 拍摄时总是看到镜像
Posted
技术标签:
【中文标题】从前置摄像头 iOS 5.0 拍摄时总是看到镜像【英文标题】:Always seeing Mirror image while capturing from Front Camera iOS 5.0 【发布时间】:2012-02-10 12:03:34 【问题描述】:从前置摄像头捕获数据时,我总是得到镜像,我怎样才能得到我在预览窗口中看到的内容。我已将videoMirrored
设置为TRUE
。以下是sn-p的代码:
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];
将setVideoMirrored
更改为True/False
也不会改变任何内容
(isVideoMirroringSupported
返回成功)
【问题讨论】:
我很确定你的预览窗口应该显示镜像视频(在某种意义上,就像你在照镜子一样,所以你举起你的右臂和右手边的手臂显示上升)- 当您捕获数据时,它是在这个意义上镜像还是与您的预览窗口相比是镜像的(因此,就来自传感器的内容而言,正确的方式)? 谢谢 Tommy。你能告诉我为什么将 SetVideoMirrored 设置为 TRUE/FALSE 不会改变任何事情。 谢谢@Tommy。你能告诉我为什么将 SetVideoMirrored 设置为 TRUE/FALSE 不会改变任何事情吗? @Tommy。是的,我检查了 isVideoMirroringSupported 是否返回 YES,并尝试将 VideoMirrored 设置为 YES/NO。但我没有看到任何变化。 @RajatKothari 你终于找到解决这个问题的方法了吗?我的前置摄像头也有同样的问题。 【参考方案1】:使用以下代码翻转镜像。
UIImage * flippedImage = [UIImage imageWithCGImage:picture.CGImage scale:picture.scale orientation:UIImageOrientationLeftMirrored];
【讨论】:
如果你是横向拍照,这将不起作用。【参考方案2】:Swift
版本:
let flippedImage = UIImage(CGImage: image.CGImage, scale: image.scale, orientation: .LeftMirrored)
【讨论】:
【参考方案3】:您可以使用withHorizontallyFlippedOrientation()
翻转 UIImage。
// first get an UIImage from the front camera
let sourceImg = UIImage(cgImage: image, scale: 1.0, orientation: .leftMirrored)
return sourceImg.withHorizontallyFlippedOrientation()
【讨论】:
以上是关于从前置摄像头 iOS 5.0 拍摄时总是看到镜像的主要内容,如果未能解决你的问题,请参考以下文章