从支持文件中的图像目录获取图像路径

Posted

技术标签:

【中文标题】从支持文件中的图像目录获取图像路径【英文标题】:Get Image Path from Images Directory in Supporting Files 【发布时间】:2013-08-05 17:15:21 【问题描述】:

我在 Xcode 的 Supported Files 目录中的 images 目录中存储了一堆图像。我希望能够展示其中一张图片。获得该图像的路径的最佳方法是什么?我必须先将它们复制到 Documents 目录吗?如果是这样,我该怎么做?

编辑:我尝试了以下方法将图像从支持文件复制到应用程序中的 Documents 文件夹。它成功复制,但我无法显示图像:

-(void)findImage:(NSString *)imageName


// First, test for existence.
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpg",imageName]];

success = [fileManager fileExistsAtPath:appImagePath];
if (success)

    return;

// The writable database does not exist, so copy the default to the appropriate location.
NSString *defaultImagePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpg",imageName]];
success = [fileManager copyItemAtPath:defaultImagePath toPath:appImagePath error:&error];
if (!success)

    NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);

self.imageDisplay.image = [UIImage imageNamed:appImagePath];
return;

【问题讨论】:

我需要澄清一下:您已经将图像导入到您的项目中并且您正在尝试访问它们,对吗?如果是这样,google for -imageNamed: in UIImage 没错。我真的不知道要找什么,所以谢谢。 没问题,我加了答案。 【参考方案1】:

这应该可以解决问题:

[UIImage imageNamed:@"someImageName"];

编辑: 一些附加信息: -imageNamed:将在应用程序的整个主包中查找文件名为“someImageName”的图像文件(最好是 png)。您不必担心它的位置或扩展名,因为它将在 mainbundle 中搜索。您通过 xcode 中的 import-file-dialogue 导入的文件将被添加到他的主包中。

这意味着: 如果我导入了一个名为 myImage.png 的文件,那么在我的代码中的任何位置调用 [UIImage imageNamed:@"myImage"];都会得到一个包含该图像的 UIImage-Object。它非常简单,也许这让你有点吃惊;)

如果您愿意,请在文档中查找: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html

【讨论】:

现在试试这个......如果我想这样做,我必须参考它的路径,对吗?此刻似乎无所作为。我检查了 Documents 文件夹(用于模拟器)并且图像不存在于那里。我需要复制它们吗? @rar - 我也修改了我的答案。 由于我没有使用PNG文件(有很多,所以重命名它们有点烦人),我必须指定扩展名,对吗?

以上是关于从支持文件中的图像目录获取图像路径的主要内容,如果未能解决你的问题,请参考以下文章

如何通过iphone中的sqlite获取路径来显示文档目录中保存的图像

Qt 和 Android - 从图库中的图像获取路径

Gatsby 从数据中获取具有相对路径的图像文件夹

无法使用模拟器从 iOS 中的 ImagePicker 获取图像路径和图像?

iOS - 将特定图像从捆绑资源路径复制到 Documents Dir

从Objective C中的NSBundle获取图像路径?