我的应用从相机胶卷中挑选照片并将其存储为NSData
。
当我需要在我的应用中显示图片时,我会从UIImage
创建NSData
。
如果原始照片是我从网页保存的图片,谷歌图片左右,UIImage
有正确的方向,如果原始照片是我用iPhone拍摄的肖像照片,UIImage
向左旋转90度。
我无法想象如何知道需要旋转的照片以及哪些照片都可以。
感谢任何帮助。
我用来在coredata实体中将图像保存为NSData的代码:
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,则图像正常,否则旋转错误。
最高
答案 0 :(得分:0)
可能这是由于您从图片生成数据的格式。尝试首先从jpg
格式转换它,因为并非所有格式都包含有关图像旋转的信息。尝试这样的事情:
var imageData: NSData?
if let _jpgData = UIImageJPEGRepresentation(image, 0) {
imageData = _jpgData
} else if let _pngData = UIImagePNGRepresentation(image) {
imageData = _pngData
}