0

我正在开发一个应用程序并使用UIImagePickerController. 当应用程序启动UIImagePickerController的对象时,它具有后置摄像头作为默认选择。后置摄像头一切正常。

但是,当我将相机源更改为frontFacingCameraimagePicker 的切换相机按钮并捕获图像时,我得到了一个镜像图像。我的左臂在图像中显示为右臂。我该如何解决这个问题?

  1. 那么有可能解决这个问题UIImagePickerController吗?
  2. 如果不是,有什么方法可以进行图像处理以获得正常图像?
  3. 是否必须AVFoundation为此问题学习课程?
  4. 如果是的话,第三。请导航到一个很好的教程。

不幸的是,我在AVFoundation.

4

2 回答 2

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;
}
于 2012-10-18T08:27:12.470 回答
0

请尝试下面的代码

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

    return flippedImage;
}
于 2014-05-14T23:52:51.543 回答