gpt4 book ai didi

ios - 从 iPhone 相机拍摄照片后,图像在预览中翻转,如何反转?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:17 25 4
gpt4 key购买 nike

当我按下快门按钮后在我的应用程序中拍照时,图像预览会水平镜像。我知道这样做是为了模仿镜子,但我不希望我的应用程序出现这种行为。我希望它像 instagram 一样拍摄前置相机照片,无需翻转。我知道如何在之后翻转照片,即:

UIImage * flippedImage = [UIImage imageWithCGImage:picture.CGImage scale:picture.scale orientation:UIImageOrientationLeftMirrored];

但它是我要翻转的预览图像(带有“重拍”和“使用照片”的图像)。任何想法如何去做这个?我想我需要重写 UIImagePicker 类中的某些内容。

谢谢

最佳答案

我尝试了很多关于 stackoverlfow 的答案,但没有一个能提供我想要的结果。否则整个 UIImagePickerViewController 都被转换了,所以相机是不直观的,不像照镜子,或者只有图像像你描述的那样在之后被转换,什么工作正常但你有一个错误的预览中间的图像。所以我最终得到了这个 hack,它绝对不是最佳实践,但适用于 iOS8 和 9,并为我提供了我需要的结果。

确保添加观察者以在按下捕获图像按钮时收到通知:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "photoTaken", name: "_UIImagePickerControllerUserDidCaptureItem", object: nil)

potoTaken 方法中,您可以执行类似这样的操作来找到预览图像并将其转换为您期望的样子:

func photoTaken() {
for subview in self.imagePicker.view.subviews {
for subsubview in subview.subviews {
for subsubsubview in subsubview.subviews {
for subsubsubsubview in subsubsubview.subviews {
for subsubsubsubsubview in subsubsubsubview.subviews {
for subsubsubsubsubsubview in subsubsubsubsubview.subviews {
for subsubsubsubsubsubsubview in subsubsubsubsubsubview.subviews {
if subsubsubsubsubsubsubview.isKindOfClass(UIImageView) {
subsubsubsubsubsubsubview.transform = CGAffineTransformScale(self.imagePicker.cameraViewTransform, -1, 1)
}
}

}
}
}
}
}
}
}

并在您的 didFinishPickingMediaWithInfo 委托(delegate)中再次翻转图像,然后再保存或显示它。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

let flippedImage = UIImage(CGImage: pickedImage.CGImage!, scale: pickedImage.scale, orientation: .LeftMirrored)

myCustomPhotoAlbum.sharedInstance.saveImage(flippedImage)
self.imageView.image = flippedImage
}

self.dismissViewControllerAnimated(true, completion: nil)
}

关于ios - 从 iPhone 相机拍摄照片后,图像在预览中翻转,如何反转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28065232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com