从NSData UIImage以错误的方向
问题描述:
我的应用程序从相机胶卷中挑选一张照片并将其存储为NSData。 当我需要在我的应用程序中显示图像时,我从NSData创建UIImage。如果原始照片是我用iPhone拍摄的肖像照片,则UIImage会左旋90度,如果原始照片是从网络,谷歌图片等保存的图像,则UIImage具有正确的方向。从NSData UIImage以错误的方向
我无法想象如何知道哪张照片需要旋转以及哪些是确定的。
任何帮助表示赞赏。
我使用的图像保存为NSData的在coredata实体代码:
asset.requestContentEditingInputWithOptions(PHContentEditingInputRequestOptions()) { (input, info) in
if let imgurl = input?.fullSizeImageURL {
let img = UIImage(data: NSData(contentsOfURL: imgurl)!)
self.gearImage = img
self.photoImageView.contentMode = UIViewContentMode.ScaleAspectFill
self.photoImageView.image = self.gearImage
}
}
然后我保存的NSData在coredata:
if self.gearImage != nil {
newItem.cgPhoto = UIImagePNGRepresentation(self.gearImage!)
}
当我必须证明我获取的图像coredata实体和:
let img = UIImage(data: self.imageData)
这就是问题所在。如果phasset fullSizeImageOrientation为null或1,则图像正常,否则旋转错误。
最大值
答
可能这是由于您从图片生成数据的格式。请先尝试从jpg
格式转换它,因为并非所有格式都包含有关图片旋转的信息。尝试这样的:
var imageData: NSData?
if let _jpgData = UIImageJPEGRepresentation(image, 0) {
imageData = _jpgData
} else if let _pngData = UIImagePNGRepresentation(image) {
imageData = _pngData
}
+0
更改为UIImageJPEGRepresentation可行,但自从我从ALAsset移至照片后,我遇到了问题。 – masgar
请张贴代码。 –