如何在我的OpenCV iOS应用程序中捆绑/存储应用程序图像数据?

时间:2015-07-03 04:50:05

标签: c++ ios objective-c xcode opencv

我是Xcode和iOS开发的新手,我有一个关于如何存储(捆绑)包含我的应用程序所需图像的应用程序数据的基本问题。我的应用程序需要一个小型图像数据库作为我提供的输入。

我在C ++中有一个Xcode项目,它使用的OpenCV目前已在我的Mac上正确编译并运行。我的Mac上的应用程序只是从我文件系统上的文件夹中读取所需的图像数据,我可以轻松指向它。我试图使用Objective-C或Swift将此应用程序移植到iOS。我能够编写一些基本的Objective-C代码作为我的C ++ / OpenCV应用程序的包装器,但我现在正处于需要访问iOS文件系统来读取图像的位置,我不知道在哪里找到该数据以及如何配置我的Xcode项目以包含它。

在对这个主题进行一些阅读后,我发现有几种方法可以在iOS中存储数据,但我不确定哪种方法适合并且相对容易实现。我的理解是我的应用程序的所有数据都需要存在于应用程序沙箱中。我看到了很多关于如何获取沙盒中各种文件夹的文件路径的示例,但我不清楚如何实际配置我的项目以包含数据(即,我将图像放在哪里?)。我需要在我的Xcode项目中配​​置一些东西,以便在编译应用程序时它知道我的数据吗?

我发现了许多关于iOS文件系统,核心数据,存档数据等的帖子......但很难找到有关如何使用我提供的数据实际配置项目的任何信息。任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您提供的图像在应用程序中固定(即 - 不随时间变化),则只需将图像添加到应用程序本身即可。它们存储在应用程序包中,可以按如下方式访问(带样本名称);

    let imagePath = NSBundle.mainBundle().pathForResource("myImage", ofType:"jpg")  
    let splashImageURL = NSURL.fileURLWithPath(imagePath!)
    anImage = NSImage(contentsOfURL:splashImageURL)

您可以在项目中创建一个文件夹来保存图像。这不用于最终图像路径,仅为了方便项目。您可以使用“文件”菜单或将图像文件直接拖放到项目中。确保选中“复制文件”选项,将图像从源位置移动到项目本身。