ios - 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;
解决方案
我的项目中有这个扩展。试试看。
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
}
}
推荐阅读
- javascript - 使用 Lodash 反转键值
- deployment - 在 YAML 文件中部署期间获取日期时间
- javascript - 在 fetch() 中删除当前 URL 自动填充
- javascript - 使用 Mapnik 以 uint16 RGB GeoTIFF 作为数据源来渲染图块
- spring - 使用 GROUP BY 的 JPA Projections 查询不使用空字段
- javascript - 如何通过更改序列中的每个备用值来懒惰地评估序列?
- javascript - 更改数组 React 的多个项目的 id
- c# - 为生产区域继承不同的类
- amazon-web-services - 如何使用 AWS CLI 为新的 SortKey 更新表?
- oracle-jet - Oracle JET:为 android 启动 ojet 混合应用程序时出错