在我正在编写的 iOS 应用程序中,我处理 PNG,因为我处理 Alpha 通道。由于某种原因,我可以将 PNG 加载到我的imageView
很好,但是当需要将图像从我的应用程序复制到粘贴板上或将图像保存到我的相机胶卷时,图像会旋转 90 度。
我对此进行了到处搜索,我学到的一件事是,如果我使用 JPEG,由于 EXIF 信息,我不会遇到这个问题(听起来)。
我的应用程序具有完整的复制/粘贴功能,这就是关键点(我将分步编写,以便更容易遵循):
- 转到我的相机胶卷并复制图像
- 进入我的应用程序并按“粘贴”,图像粘贴得很好,我可以一整天都这样做
- 点击我实现的复制功能,然后点击“粘贴”,图像粘贴但是旋转了。
我 100% 确定我的复制和粘贴代码没有问题,因为如果我返回上面的步骤 2,然后单击“保存”,照片将保存到我的图库中,但会旋转 90 度!
更奇怪的是,它似乎对从互联网下载的图像工作得很好,但对我用手机手动拍摄的图像却很不稳定。有些有效,有些则无效...
有人对此有什么想法吗?我可以使用任何可能的解决方法吗?我对代码非常有信心,因为它适用于我大约 75% 的图像。不过,我可以根据要求发布代码。
对于那些想要 Swift 解决方案的人,请创建 UIImage 的扩展并添加以下方法:
func correctlyOrientedImage() -> UIImage {
if self.imageOrientation == .up {
return self
}
UIGraphicsBeginImageContextWithOptions(size, false, scale)
draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
let normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return normalizedImage ?? self;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)