我正在开发一个应用程序,我需要从 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];
令人惊讶的是这完美地工作。
这是我的问题:
- 如何正确获取从
UIImagePickerController
中选择的图像的字节数? - 有没有办法以编程方式将照片添加到包中?
谢谢!
编辑:
我在原始 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/