IOS Swift 3:拍摄相机图片后水平翻转前置摄像头图像

app*_*her 14 iphone camera ios swift swift3

StackOverflow上有几个问题涉及图像翻转,例如这里的图像翻转.默认情况下,iOS会在拍摄照片时反转前置摄像头水平图像.我试图防止前置摄像头图像被翻转或将其翻转回正确的方向.我正在与...互动WKWebview.

问题是我不知道调用或放入我的ViewController相机的方法,然后将其设置为正确的方向,或正确的设置以防止此行为.我也不知道如何获取拍摄图像的相机信息.

这是我尝试的一种解决方案,它基于翻译一些Objective-C代码,在相机完成照片后更改图像.但是图片变量是常量,不能更改:

func didTakePicture(_ picture: UIImage) {
    var flippedImage = UIImage(cgImage: picture.cgImage!, scale: picture.scale, orientation: .leftMirrored)
    picture = flippedImage
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.谢谢!

Raj*_*jat 12

您正在正确地翻转图像,但为什么要将翻转的图像分配给picture变量,您可以使用flippedImage变量并将其传递到需要的位置.

func didTakePicture(_ picture: UIImage) {
    var flippedImage = UIImage(CGImage: picture.CGImage!, scale: picture.scale, orientation: .leftMirrored)
    // Here you have got flipped image you can pass it wherever you are using image
}
Run Code Online (Sandbox Code Playgroud)

我要做的是防止前置摄像头图像被翻转

如果您使用默认相机,则无法防止相机阻止翻转图像.要做到这一点,您需要使用AVFoundation创建自己的相机,并需要在那里应用您的逻辑.

如果您准备使用任何三分之一方库,则可以检查LEMirroredImagePicker