在ios中检索和存储SQLite中的图像

时间:2015-12-05 07:29:41

标签: ios objective-c image sqlite

我们如何在ios应用程序中创建一个用于在sqlite中存储和检索图像的按钮? 其实我正在构建一个应用程序,我可以从相机拍照,我必须存储它并显示为个人资料图片

2 个答案:

答案 0 :(得分:2)

如果要存储大量图像,则将图像数据存储在数据库中是不正确的。它将挂起UI。

您可以在文档目录中创建一个文件夹并将图像放在那里。所以,你每次都会从那里得到图像。

在数据库中,存储文件路径并从该文件路径获取图像。

确保从文档目录中删除图像,一旦它变得无法使用,即用户更改了个人资料图片。否则,它会不断增加你的应用程序内存。

答案 1 :(得分:0)

最好将图像存储在文件路径(文件路径)中,并将文件路径存储在sqlite中,以便更快地访问图像。

制作文件路径如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory 
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"image.png"]; //Add the file name
[pngData writeToFile:filePath atomically:YES]; //Write the file

现在,filepath字符串将插入到sqlite数据库中。

现在当您访问图像时,您将从sqlite获取文件路径并从下面获取图像数据:

NSData *pngData = [NSData dataWithContentsOfFile:filePath];
UIImage *image = [UIImage imageWithData:pngData];