1

我现在从图库中获取图像,该图像正在显示在应用程序中,但同时我想将该图像保存在文档目录中

为此我使用下面的代码

-(void)imagePickerController:(UIImagePickerController *)picker
      didFinishPickingImage : (UIImage *)image
                 editingInfo:(NSDictionary *)editingInfo
{
    selectImage.image = image;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent: 
                      [NSString stringWithString: @"test.png"] ];
    NSData* data = UIImagePNGRepresentation(image);
    [data writeToFile:path atomically:YES];
    [picker dismissModalViewControllerAnimated:YES];
}

现在我的问题是您可以看到我将名称命名为 test.png 但我想设置实际图像的名称。所以每次用户选择不同的图像和不同的名称都会被存储

那么如何在路径中设置图像的实际名称

请帮助谢谢你:)

4

3 回答 3

1

您可以使用以下两行来获取图像名称..可能会为您使用完整的..

NSURL *imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"];

NSString *imageName = [imagePath lastPathComponent];
于 2013-03-28T06:29:34.317 回答
1

您可以使用以下代码每次获取新名称来存储您的图像

NSError *error = nil;

获取文档目录路径

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

抓取内容目录,该位置的所有文件

NSArray *contents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[paths objectAtIndex:0] error:&error];

现在获取资源数量,并通过将 1 添加到当前 Count 来创建新文件名

NSString *newFileName = [NSString stringWithFormat:@"Test_%d.png",[contents count]+1];
于 2013-03-28T06:30:17.597 回答
0
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{

   NSURL *imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"];

 NSString *originalImg = [imagePath lastPathComponent];

}
于 2013-03-28T06:29:56.423 回答