嘿,我是iPhone的新手,我一直在尝试制作一种类似的应用程序。基本上,我想要做的是我需要将所有捕获的图像保存到特定文件夹中,例如与我们在iPhone设备库中的应用名称相关的新专辑“My_App Images”,它对我有用,但我遇到了麻烦更改图像文件名,我不知道是否可以指定文件名?使用iPhoto,目前我将图像文件名称设置为“IMG_0094.jpg”,我们可以通过编程方式更改任何其他文件名,如“Anyfilename.png”格式吗?
这是我将图像保存到特定相册的代码:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
[self.library saveImage:image toAlbum:@"My_App Images" withCompletionBlock:^(NSError *error) {
if (error!=nil) {
NSLog(@"Image saving error: %@", [error description]);
}
}];
[picker dismissViewControllerAnimated:NO completion:nil];
}
赞赏任何参考资料或链接。谢谢你的帮助!
答案 0 :(得分:1)
通过设置图像IPTC元数据字段"对象名称",有一种方法可以做到这一点。如果稍后将图像导入iPhoto,则此名称将用作其标题。
查看http://ootips.org/yonat/how-to-set-the-image-name-when-saving-to-the-camera-roll/的详细信息(和代码)。
答案 1 :(得分:0)
你的意思,
// Build NSData in memory from the btnImage...
NSData* imageData = UIImageJPEGRepresentation(image, 1.0);
// Save to the default Apple (Camera Roll) folder.
[imageData writeToFile:@"/private/var/mobile/Media/DCIM/100APPLE/customImageFilename.jpg" atomically:NO];
现在根据您的文件夹名称调整文件夹路径...
答案 2 :(得分:0)
很抱歉让您失望,但似乎您无法在相册中保存之前或之后更改照片名称,无论是否自定义。这是一篇解释它的帖子:
iOS rename/delete albums of photos
修改强>
因此,为了澄清我的评论,请使用以下覆盖:
还从here下载示例项目CustomAlbumDemo
,并将NSMutableDictionary+ImageMetadata.m
项目中的CustomAlbumDemo
文件修改为:
-(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock { //write the image data to the assets library (camera roll) NSData* imageData = UIImageJPEGRepresentation(image, 1.0); NSMutableDictionary *metadata = [[NSMutableDictionary alloc] init]; [metadata setDescription:@"This is my special image"]; [self writeImageDataToSavedPhotosAlbum:imageData metadata:metadata completionBlock:^(NSURL *assetURL, NSError *error) { //error handling if (error!=nil) { completionBlock(error); return; }
//add the asset to the custom photo album [self addAssetURL: assetURL toAlbum:albumName withCompletionBlock:completionBlock]; }];
//add the asset to the custom photo album [self addAssetURL: assetURL toAlbum:albumName withCompletionBlock:completionBlock]; }];