Я работаю над приложением, которое использует фронтальную камеру iPhone.Когда изображение снято с помощью этой камеры, оно горизонтально переворачивается iPhone.Я хочу отразить его обратно, чтобы иметь возможность сохранить его и отобразить так, как это было видно на экране iPhone.
Я прочитал много документов и множество советов в сети, и я 'Я все еще в замешательстве.
После моих исследований и многочисленных попыток я нашел решение, которое работает как для сохранения, так и для отображения:
- (UIImage *) flipImageLeftRight:(UIImage *)originalImage {
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:originalImage];
UIGraphicsBeginImageContext(tempImageView.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
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;
}
Но это слепое использование, и я нене понимаю, что сделано.
Я пытался использовать 2 imageWithCGImage, чтобы отразить его, а затем повернуть на 180 °, но это не сработало по какой-то таинственной причине.
Так что мой вопрос: Не могли бы вы помочь мне написать оптимизированный метод, который работает и который я смог бы понять, как он работает . Матрица - это черная дыра для меня ...