首页 > 解决方案 > iOS 13 - 以错误的方向保存 UIImage

问题描述

我在照片的方向上遇到了一些问题。拍摄肖像照片并将其保存到相机胶卷后,我看到它旋转了。但是当我将它添加到图像视图时,它看起来还可以。其他人发现了同样的问题吗?反馈助手中是否存在未解决的错误?谢谢!

当我尝试使用 PHPhotoLibrary 保存它时发生了同样的问题

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); //Saves rotated
    imageView.image = image; //Appears OK
    [self dismissModalViewControllerAnimated:YES];
}
PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
assetPlaceholder = changeRequest.placeholderForCreatedAsset;

标签: iosobjective-cuiimageuiimagepickercontrollerphphotolibrary

解决方案


我的项目中有这个扩展。试试看。

extension UIImage {
    func fixOrientation() -> UIImage {
        if imageOrientation == .up {
            return self
        }
        UIGraphicsBeginImageContextWithOptions(size, false, scale)
        draw(in: CGRect(origin: .zero, size: size))
        let normalizedImage: UIImage = UIGraphicsGetImageFromCurrentImageContext() ?? self
        UIGraphicsEndImageContext()
        return normalizedImage
    }
}

推荐阅读