iphone - UIImagePNGRepresentation问题?/图像旋转90度

标签 iphone cocoa-touch uiimagepngrepresentation

我想从 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/

相关文章:

ios - 当 Web Inspector 和日志没有显示任何内容时,如何调试崩溃的 iOS Safari?

iphone - 使用一个代码库 : framework for scaling layouts and assets for HTML5 apps on iPhones or iOS devices? 为非 Retina 和 Retina 显示器提供服务

objective-c - Mac 到 iPhone 应用程序通过 WiFi 进行通信

ios - UIScreen 是否有屏幕打开通知?

objective-c - UIImagePNGRepresentation 内存泄漏

objective-c - XCODE 5 iOS7 如何在不丢失透明背景的情况下将 UIImage (PNG) 转换为 NSData

iphone - Cocoa touch - 内存管理

iphone - 带截断的多行 CATextLayer

objective-c - ios中的GDataXMLElement到原始xml字符串

ios - 图片保存后变大