我正在尝试保存用户使用相机拍摄的图像
1)如果我使用UIImageWriteToSavedPhotosAlbum,我似乎无法分配我想要的fileName。怎么样,你能选择文件名吗?
使用此选项的好处是
[picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
然后给出照片库目录的缩略图库。
2)这导致我的下一个问题可以
[picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
用于从您自己的个人目录中获取图片?
3)无论如何以编程方式在照片库中创建子文件夹
4)最后,
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSPicturesDirectory, NSUserDomainMask, YES);
if (![[NSFileManager defaultManager] fileExistsAtPath:[paths objectAtIndex:0] isDirectory:&isDir]) {
NSError *error;
[[NSFileManager defaultManager] createDirectoryAtPath:[paths objectAtIndex:0 withIntermediateDirectories:YES attributes:nil error:&error];
}
检查NSPicturesDirectory是否存在,以便我可以写入它
我不断收到Cocoa错误513
提前致谢
答案 0 :(得分:5)
您无法为照片库图像指定文件名。 ios将名为 asset url 的文件名分配给保存到照片库的图像,我们无法更改。
如果您需要将图像保存到照片库,可以使用ALAssetsLibrary
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:[image CGImage] orientation:(ALAssetOrientation) [image imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){
if (error)
{
// Eror
}
else
{
// Success
}
}];
[library release];
有关更多信息,请查看: How to save picture to iPhone photo library?
答案 1 :(得分:2)
要保存您选择的文件名,您需要将图像保存到文档目录中。这可以很容易地完成:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
NSString *current = [NSString stringWithFormat:@"%@/%@",PHOTODATA_PATH,currentItem];
UIGraphicsBeginImageContext(CGSizeMake(160,160));
[image drawInRect:CGRectMake(0,0,160,160)];
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * thumbSize = UIImageJPEGRepresentation(scaledImage, 1.0);
[thumbSize writeToFile:[NSString stringWithFormat:@"%@_thumb.jpg",current] atomically:YES];
NSData * fullSize = UIImageJPEGRepresentation(image, 1.0);
[fullSize writeToFile:[NSString stringWithFormat:@"%@.jpg",current] atomically:YES];
[self dismissModalViewControllerAnimated:YES];
}
当然,可能需要对此代码进行编辑以符合您的具体情况,但会提供基本的理解以及使用NSData
将照片保存到文件的方式。
是的,UIImagePickerControllerSourceTypePhotoLibrary
将访问您设备上的照片库。使用此功能可以访问保存或从相机胶卷中拍摄的所有照片。
不,您无法使用应用程序在照片库中创建子文件夹。这可以使用iPhoto或iTunes等完成。
您只能访问沙盒环境中包含的Documents
和Library
路径。将照片保存到照片库的唯一方法是使用适当的公共方法。无需检查目录是否存在,操作系统将负责管理照片库所需的所有“幕后”任务。