使用frontFacingCamera在UIImagePickerController中镜像图像

时间:2012-10-18 07:47:03

标签: iphone ios uiimage uiimagepickercontroller

我正在使用应用程序并使用UIImagePickerController捕获图像。当应用程序启动UIImagePickerController的对象时,它将后置摄像头作为默认选择。使用后置摄像头,一切正常。

然而,当我从imagePicker的切换相机按钮和摄像图像中将相机源更改为frontFacingCamera时,我会得到一个镜像图像。我的左臂在图像中显示为右臂。我该如何解决这个问题?

  1. 因此可以使用UIImagePickerController解决此问题吗?
  2. 如果不是,我有什么方法可以进行图像处理以获得正常的图像?
  3. 是否必须为此问题学习AVFoundation课程?
  4. 如果是,则为第3名。请导航我一个很好的教程。
  5. 不幸的是,AVFoundation我很弱。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并使用此方法反过来镜像图像。

- (UIImage *) flipImageLeftRight:(UIImage *)originalImage {
    UIImageView *tempImageView = [[UIImageView alloc] initWithImage:originalImage];

    UIGraphicsBeginImageContext(tempImageView.frame.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

     //CGAffineTransformMake(<#CGFloat a#>, <#CGFloat b#>, <#CGFloat c#>, <#CGFloat d#>, <#CGFloat tx#>, <#CGFloat ty#>)
     CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0,  tempImageView.frame.size.height);
     CGContextConcatCTM(context, flipVertical);

     [tempImageView.layer renderInContext:context];

     UIImage *flipedImage = UIGraphicsGetImageFromCurrentImageContext();
     flipedImage = [UIImage imageWithCGImage:flipedImage.CGImage scale:1.0 orientation:UIImageOrientationDown];
     UIGraphicsEndImageContext();

     [tempImageView release];

     return flipedImage;
}

答案 1 :(得分:0)

Plz尝试以下代码

- (UIImage *)PictureFlipe:(UIImage *)picture
{
    UIImage * flippedImage = [UIImage imageWithCGImage:picture.CGImage scale:picture.scale orientation:UIImageOrientationLeftMirrored];

    return flippedImage;
}