如何从UIImage获取文件路径?

时间:2013-11-27 19:20:48

标签: ios objective-c path uiimage

通常情况相反,您使用路径显示图像。我想知道如果你已有图像,是否可以获得路径。

3 个答案:

答案 0 :(得分:21)

如果您已经有图像,即已将文件添加到资源,则可以使用此文件获取文件路径;

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

答案 1 :(得分:12)

我认为不可能直接从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将成为您的文件路径。

答案 2 :(得分:8)

创建UIImage后,图像数据将加载到内存中,不再连接到磁盘上的文件。因此,可以删除或修改文件而不会影响UIImage,也无法从UIImage获取源路径。