ios - UIImagePickerController 损坏图像

标签 ios objective-c uiimagepickercontroller nsdata uiimagejpegrepresentation

我正在开发一个应用程序,我需要从 UIImage 中获取字节。

目前,我使用UIImagePickerController,并像这样获取UIImage

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

然后使用这段代码从UIImage获取数据,

NSData *data = UIImageJPEGRepresentation(image, 1.0);

但是,在这种情况下,数据 似乎已损坏。

另一方面,我已经将 jpeg 添加到应用程序的包中,然后尝试将图像转换为数据,

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"mapa" ofType:@"jpeg"];
NSData *myData = [NSData dataWithContentsOfFile:filePath];

令人惊讶的是这完美地工作。

这是我的问题:

  1. 如何正确获取从 UIImagePickerController 中选择的图像的字节数?
  2. 有没有办法以编程方式将照片添加到包中?

谢谢!

编辑:

我在原始 JPEG(“GEO-Information”)上有一些元数据字节。 如果我将 jpeg 存储在 ipad 上,该元数据就会消失,而我需要它们:S

最佳答案

使用下面的代码将图像存储在文档目录中;

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
[data writeToFile:savedImagePath atomically:NO];   

这里的“数据”是您从捕获的图像中获得的 NSData。

关于ios - UIImagePickerController 损坏图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23108297/

相关文章:

ios - Apple 说即使 wifi 已连接也无法连接到 wifi

ios - Apple ARKit (Augmented Reality Kit) 给出断言失败的错误信息

iphone - UIImagePicker 收到名为 viewDidLoad 的内存警告并清除 UITextField

iphone - UIImagePickerController 无法选择图片

objective-c - iPhone 和 iPad 的条件编码在现实中是如何工作的?

ios - 为什么 .geocodeAddressString 不改变外部变量?

html - 使用 Swift 4 使用 WKWebview 滚动

iphone - Google Drive SDK- iOS 应用程序中的音频和视频流

iphone - 使用数据库的新信息更新数组

ios - 在 BTLE 后台通知触发后拍照