使用原生 iOS 相机应用程序拍摄的照片总是 UIImage 方向向上

Posted

技术标签:

【中文标题】使用原生 iOS 相机应用程序拍摄的照片总是 UIImage 方向向上【英文标题】:Photos taken with native iOS Camera app are always UIImageOrientationUp 【发布时间】:2014-05-04 13:23:15 【问题描述】:

我正在为 iPhone 拍摄的所有可能的图像和视频方向构建一个测试用例。

我使用原生 ios 相机应用程序拍摄了所有 8 个可能的方向(上、下、左、右),但对于我正在运行的示例代码,它似乎都报告图像是

参考代码是printOrientationForName(@“UIImage”, image.imageOrientation); 工作示例可以在这里找到sugarso/Orientation

输出在这里

2014-05-04 15:42:39.651 Orientation[10293:60b] ASSET ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=E819189D-0696-4C94-8046-804CBF1551E8&ext=JPG
2014-05-04 15:42:39.661 Orientation[10293:60b] UIImage UIImageOrientationUp [0]
2014-05-04 15:42:39.663 Orientation[10293:60b] ASSET ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=19E29D06-96F2-4B35-A0EB-B2A809A02C79&ext=JPG
2014-05-04 15:42:39.665 Orientation[10293:60b] UIImage UIImageOrientationUp [0]
2014-05-04 15:42:39.667 Orientation[10293:60b] ASSET ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=265261C0-0479-41C4-BFDC-91AD6887A81F&ext=JPG
2014-05-04 15:42:39.668 Orientation[10293:60b] UIImage UIImageOrientationUp [0]
2014-05-04 15:42:39.669 Orientation[10293:60b] ASSET ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=BE459DAE-0CFD-4D93-8050-5C62D9F5D0F9&ext=JPG
2014-05-04 15:42:39.670 Orientation[10293:60b] UIImage UIImageOrientationUp [0]

如您所见,所有图像都是使用 UIImageOrientationUp 创建的。我在检查错误的财产?还是相机应用程序会翻转所有照片?我应该如何使用给定的布局拍照。

【问题讨论】:

【参考方案1】:

取决于不同的东西,例如:

如果您没有将它们连同它们的元数据一起保存在资源库中,然后您打开它们,它们将以默认方向 (UIImageOrintationUp) 加载 如果将它们保存为 png,图像不知道它们的方向 如果您使用选取器、委托缓冲区或静止图像加载/拍摄它们,方向会有所不同

我在我的博客 (Exif pain) 上写了这篇文章,也许它有助于检查您的问题

【讨论】:

您好 Andrea,我正在使用 iOS 相机应用程序保存图像。我只是用自定义代码分析它们。 iPhone 相机将图像保存为 jpeg。它不也添加 Exif 数据以进行定向吗?因为如果您捕获视频,prefferedTransform 确实包含所需的方向旋转数据。 可以,但您还应该同时加载图像元数据biasedbit.com/alasset-image-orientation 即使您的回答没有直接解决我的问题,但它确实指向了正确的方向!!!

以上是关于使用原生 iOS 相机应用程序拍摄的照片总是 UIImage 方向向上的主要内容,如果未能解决你的问题,请参考以下文章

在拍摄多张照片时反应原生路由器通量和反应原生相机问题

Ionic 框架拍摄实时视频

避免图库保存在Android中使用相机拍摄的照片

拍摄第三张照片后应用程序崩溃 - iOS

Android:保存用户使用相机拍摄的照片

iOS - 防止使用相机拍摄的照片进入 iCloud