我想从 UIImagePickerController 加载图像,然后将所选照片保存到我的应用程序的文档目录中。
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *data1 = UIImagePNGRepresentation(image);
NSString *fileName = "1.png";
NSString *path = //get Document path, then add fileName
BOOL succ = [data1 writeToFile:path atomically:YES];
但是当我将图像保存到文档中后,我发现图像旋转了90度,然后我将方法 UIImagePNGRepresentation 更改为 UIImageJPEGRepresentation,这次没问题了,有人知道问题出在哪里吗?
最佳答案
我遇到了同样的问题,只是找出了原因:从 iOS 4.0 开始,当相机拍照时,它在保存之前不会旋转它,它只是在 JPEG 的 EXIF 数据中设置一个旋转标志。
如果将 UIImage 保存为 JPEG,它将设置旋转标志。
PNG 不支持旋转标志,因此如果将 UIImage 保存为 PNG,它将被错误旋转,并且没有设置标志来修复它。因此,如果您想要 PNG,您必须自己旋转它们。
我认为这是 PNG 保存功能中的一个错误,但这只是一个意见(他们至少应该警告你这一点)。
关于iphone - UIImagePNGRepresentation问题?/图像旋转90度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3554244/