как получить путь к изображению, которое находится в галерее iphone

мне нужно загрузить изображение из галереи iphone, но я не получаю путь к выбранному изображению (используя средство выбора изображений)

в методе делегата выбора изображения я делаю следующее

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissModalViewControllerAnimated:YES];
    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

    NSString *strImagePath = [info valueForKey:UIImagePickerControllerReferenceURL];
    NSString *strImagePath1 = [info valueForKey:UIImagePickerControllerMediaURL];
    NSLog(@"%@",strImagePath);
    NSLog(@"%@",strImagePath1);
    NSLog(@"%@",info);

}

и информационный словарь содержит следующие ключевые значения

{
    UIImagePickerControllerMediaType = "public.image";
    UIImagePickerControllerOriginalImage = "<UIImage: 0x16adc0>";
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=1000000153&ext=PNG";
}

я использовал значение для ключа UIImagePickerControllerReferenceURL в качестве пути к изображению, чтобы загрузить его на FTP, но я не смог загрузить файл, возможно, путь, который я выбрал, неверен.

может ли кто-нибудь помочь мне, как я могу выбрать фактический путь к выбранному изображению с помощью средства выбора изображений


person Ravi    schedule 13.12.2012    source источник


Ответы (2)


Может быть, это будет полезно для вас

[picker dismissModalViewControllerAnimated:YES];
imageView.image= [info objectForKey:@"UIImagePickerControllerOriginalImage"];
NSData *webData = UIImagePNGRepresentation(imageView.image);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *localFilePath = [documentsDirectory stringByAppendingPathComponent:png];
[webData writeToFile:localFilePath atomically:YES];
NSLog(@"localFilePath.%@",localFilePath);

UIImage *image = [UIImage imageWithContentsOfFile:localFilePath];
person Sudha Tiwari    schedule 13.12.2012
comment
Я также отправляю изображение на FTP-сервер, используя это. У меня это отлично работает. - person Sudha Tiwari; 13.12.2012
comment
@Sudha Есть ли способ получить путь, не сохраняя его в каталоге документов, потому что он уже где-то сохранен? - person thavasidurai; 26.04.2013
comment
@sudha я не могу отправить изображение на ftp-сервер, пожалуйста, помогите мне - person ; 29.03.2014
comment
@RamaniAshish ознакомьтесь с этим... ошибка открытого потока в simpleftpsample, представленном в документации Apple"> stackoverflow.com/questions/14459265/ stackoverflow.com/questions/14893090/sending-data-by-ftp/ - person Sudha Tiwari; 31.03.2014
comment
есть ли способ сделать это без дублирования исходного файла? - person George Maisuradze; 19.03.2015

Преобразуйте свое изображение в NSData, а затем загрузите это NSData.

Ваше изображение в NSData

NSData *dataImage = UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"],1);

Или вы можете преобразовать ваше изображение в NSData, используя

NSData *dataImage = UIImagePNGRepresentation(yourImageView.image);

Подробнее см. Справочник по классу NSData.

person Rajneesh071    schedule 13.12.2012
comment
Спасибо за ваш ответ, но данные возвращаются нулевыми NSData *data = [[NSData alloc]initWithContentsOfURL:[info valueForKey:UIImagePickerControllerReferenceURL]]; - person Ravi; 13.12.2012