Как я могу получить путь к файлу из UIImage?

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

3 ответов


если у вас уже есть изображение, т. е. вы добавили файл в свои ресурсы, вы можете использовать это, чтобы получить путь к файлу;

NSString *string = [[NSBundle mainBundle] pathForResource:@"IMAGE_FILE_NAME" ofType:@"jpg"]; // or ofType:@"png", etc.

Я не верю, что можно получить его непосредственно из UIImage.

лучший способ-сохранить изображение в каталог, то у вас будет путь к файлу.

//image is your UIImage;

if (image != nil)
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent:
                      @"test.png" ];
    NSData* data = UIImagePNGRepresentation(image);
    [data writeToFile:path atomically:YES];
}

path будет твой путь.


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