存储图片
// Save Small Image Data by given main url
- (void) SaveImagesToSql: (NSData*) imgData :(NSString*) mainUrl
{
NSLog( @"\n*****Save image to SQLite*****\n" );
const char* sqliteQuery = "INSERT INTO IMAGES (URL, IMAGE) VALUES (?, ?)";
sqlite3_stmt* statement;
if( sqlite3_prepare_v2(articlesDB, sqliteQuery, -1, &statement, NULL) == SQLITE_OK )
{
sqlite3_bind_text(statement, 1, [mainUrl UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_blob(statement, 2, [imgData bytes], [imgData length], SQLITE_TRANSIENT);
sqlite3_step(statement);
}
else NSLog( @"SaveBody: Failed from sqlite3_prepare_v2. Error is: %s", sqlite3_errmsg(articlesDB) );
// Finalize and close database.
sqlite3_finalize(statement);
}
读取图片
// Load images from data base with given image url
- (NSData*) LoadImagesFromSql: (NSString*) imageLink
{
NSData* data = nil;
NSString* sqliteQuery = [NSString stringWithFormat:@"SELECT IMAGE FROM IMAGES WHERE URL = '%@'", imageLink];
sqlite3_stmt* statement;
if( sqlite3_prepare_v2(articlesDB, [sqliteQuery UTF8String], -1, &statement, NULL) == SQLITE_OK )
{
if( sqlite3_step(statement) == SQLITE_ROW )
{
int length = sqlite3_column_bytes(statement, 0);
data = [NSData dataWithBytes:sqlite3_column_blob(statement, 0) length:length];
}
}
// Finalize and close database.
sqlite3_finalize(statement);
return data;
}
本文介绍了一种使用 SQLite 数据库存储和读取图片的方法。通过将图片数据作为 Blob 类型保存到数据库中,可以有效地管理和检索图像资源。具体实现包括将图片数据与对应的 URL 关联存储,以及根据 URL 加载图片数据。
4485

被折叠的 条评论
为什么被折叠?



