UUImage imageWithContentsOfFile是nill
我试图从iOS 8的Media / DCIM文件夹中加载一张图片,以便稍后对其进行压缩,因此我开始编写该脚本。
int main(int argc, char **argv, char **envp) {
NSString *str = @"Media/DCIM/101APPLE/IMG_1022.JPG";
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL success = [fileManager fileExistsAtPath:str];
if(!success)
{
NSLog(@"File not found at given path");
}
else
{
//NSString *path = [[NSBundle mainBundle] pathForResource:str ofType:nil];
//UIImage* image = [UIImage imageWithContentsOfFile:path];
UIImage* image = [UIImage imageWithContentsOfFile:str];
CIImage *cim = [image CIImage];
if (cim == nil)
{
NSLog(@"File found at given path, but failing to allocate it as an UUImage obj");
}
else
{
NSLog(@"All good !");
[image release];
}
}
return 0;
}
输出给出“在给定路径中找到的文件,但未能将其分配为UUImage对象。”
任何想法为什么文件被找到,但不可能加载它作为UUImage类型? 我也尝试加载作为NSBundle的路径,但仍然没有lucks。
提前致谢
修正:回答尼古拉斯答案的评论
只是你不能访问iOS中的Media/DCIM
文件夹,因为系统是沙盒。 根据文档,您的应用程序只能在应用程序文件夹的这些子文件夹中直接读写文件:
Documents/
Documents/Inbox/
Library/
tmp/
对于其他用途,例如照片,视频和歌曲选择,您需要使用iOS的指定采摘工具。
由于您需要从相机胶卷中选取图像,因此应该使用UIImagePickerController
对象。 它会为选取器控制器中选择的图片返回适当的UIImage
。
看看NSHipster的这篇文章,了解更多关于NSFileManager
信息。 还请阅读这个问题的内容。
上一篇: UUImage imageWithContentsOfFile is nill
下一篇: Transparency Issue