在iOS中保存和检索图像

我正在尝试将图像保存到Sqlite中,然后将图像加载到UIImageView中。 但是这不是工作。 我没有什么错。 这是我正在使用的代码。 有谁能帮我解决这个问题。

- (void)saveImage { sqlite3_stmt *compiledStmt; if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){ const char *insertSQL="insert into Image(Image)values(?)"; if(sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL) == SQLITE_OK){ UIImage *image = [UIImage imageNamed:@"farmhouse.png"]; NSData *imageData=UIImagePNGRepresentation(image); sqlite3_bind_blob(compiledStmt, 1, [imageData bytes], [imageData length], NULL); sqlite3_step(compiledStmt); char *errMsg; sqlite3_exec(db, insertSQL, NULL,compiledStmt,&errMsg); } } } - (void)showImage { sqlite3_stmt *compiledStmt; if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){ const char *insertSQL = "Select Image from Image Where Sl.No = ?"; sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL); if(sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL) == SQLITE_OK){ sqlite3_bind_int(compiledStmt, 1, 1); if(SQLITE_DONE != sqlite3_step(compiledStmt)) { NSData *data = [[NSData alloc] initWithBytes:sqlite3_column_blob(compiledStmt, 1) length:sqlite3_column_bytes(compiledStmt, 1)]; if(data == nil) NSLog(@"No image found."); else imgView.image = [UIImage imageWithData:data]; } } } } 

任何人都可以用上面的代码指出问题。

提前致谢

 - (void)saveImage { sqlite3_stmt *compiledStmt; sqlite3 *db; if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){ NSString *insertSQL=@"insert into Image(image) VALUES(?)"; if(sqlite3_prepare_v2(db,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &compiledStmt, NULL) == SQLITE_OK){ UIImage *image = [UIImage imageNamed:@"vegextra.png"]; NSData *imageData=UIImagePNGRepresentation(image); sqlite3_bind_blob(compiledStmt, 1, [imageData bytes], [imageData length], SQLITE_TRANSIENT); if(sqlite3_step(compiledStmt) != SQLITE_DONE ) { NSLog( @"Error: %s", sqlite3_errmsg(db) ); } else { NSLog( @"Insert into row id = %lld", (sqlite3_last_insert_rowid(db))); } sqlite3_finalize(compiledStmt); } } sqlite3_close(db); } - (void)showImage { sqlite3_stmt *compiledStmt; sqlite3 *db; int i = 1; if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){ NSString *insertSQL = [NSString stringWithFormat:@"Select image from Image Where Id = %d",i]; if(sqlite3_prepare_v2(db,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &compiledStmt, NULL) == SQLITE_OK) { while(sqlite3_step(compiledStmt) == SQLITE_ROW) { int length = sqlite3_column_bytes(compiledStmt, 0); NSData *imageData = [NSData dataWithBytes:sqlite3_column_blob(compiledStmt, 0) length:length]; NSLog(@"Length : %d", [imageData length]); if(imageData == nil) NSLog(@"No image found."); else imgView.image = [UIImage imageWithData:imageData]; } } sqlite3_finalize(compiledStmt); } sqlite3_close(db); }