概述NSData * UIImageJPEGRepresentation ( UIImage *image, CGFloat compressionQuality ); 复制代码 和 NSData * UIImagePNGRepresentation ( UIImage *image ); 复制代码 写 到这里大家可能已经明白怎样将
图片导进数据库了吧!!数据库中存放图片声音等都是 B
NSData * UIImageJPEGRepresentation ( UIImage *image, CGfloat compressionQuality ); 复制代码 和
NSData * UIImagePNGRepresentation ( UIImage *image ); 复制代码 写 到这里大家可能已经明白怎样将图片导进数据库了吧!!数据库中存放图片声音等都是
BLOB类型的,什么是BLOB类型呢?这个暂时先不在这里讲解了
从上个方法中得到的NSData类型就是我们要转换的基本格式了。废话不多说,且看代码:
/*
链接数据库部分略落
*/
创建数据表(就建立个简单的表格)
char *error; Nsstring *createsqlite = @"create table if not exists lovE(image_ID integer primary key,image BLOB)";//primary key 可不要漏掉 if(sqlite3_exec(database,[createsqlite UTF8String],NulL,&error)!=sqlITE_OK) { sqlite3_close(database);//出错误了??那查看一下是否链接好数据库了·· } 复制代码 好 了数据库我们已经建好了,接下来就是我们开始练兵的时候了,且看----------
××××××××××××××××××××××××××××××××××××××××××××××××××××
-(IBAction)insertimageToDB { NSData *data = UIImagePNGRepresentation([UIImage imagenamed:@"back.png"]); // 还记得这个可爱的方法吗??哈 NSUInteger length = [data length];//这个法参数用来计算data数据的大小的 为什么?待会解释 sqlite3_stmt *statement;// Nsstring *query = [[Nsstring alloc] initWithString:@"INSERT OR REPLACE INTO lovE(IMAGE) VALUES (?)"]; if(sqlite3_prepare_v2(database,[query UTF8String],-1,&statement,NulL)!=sqlITE_OK) { //出错误了 去查看一下吧 NSLog(@"I have read an error"); return; } sqlite3_bind_blob(statement,1,[data bytes],length,sqlITE_TRANSIENT);//这里对应query里的问号,第几个问号,里面的参数就填几··· sqlite3_step(statement); sqlite3_finalize(statement); sqlite3_close(database);// 忘了关闭你就白存了 } 复制代码 ×××××××××××××××××××××××××××××××××××××××××××××××××××××
// 就这么简单,不是吗??下面来读取一下看看我们的图片是不是乖乖的在数据库里了吧!·!!
×××××××××××××××××××××××××××××××××××××××××××××××××××××
-(IBAction)readDBImage { Nsstring *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:kDefaultDbPath]; if (sqlite3_open([defaultDBPath UTF8String],&database) != sqlITE_OK) { sqlite3_close(database); NSAssert1(0,@"Failed to open database with message '%s'.",sqlite3_errmsg(database)); } else { NSLog(@"Open Data DB Successful"); } //打开数据库kDefaultDbPath 这个是你的数据库名字 Nsstring *query = @"select IMAGE from lovE"; sqlite3_stmt *statement; if(sqlite3_prepare_v2(database,nil) == sqlITE_OK) { NSLog(@"pass"); while(sqlite3_step(statement) == sqlITE_ROW) { NSData *imageData; const voID *test = sqlite3_column_blob(statement,0); int size = sqlite3_column_bytes(statement,0); imageData = [NSData dataWithBytes:test length:size]; CFShow(imageData); UIImage *image = [UIImage imageWithData:imageData]; [imageVIEw setimage:image]; //显示你的Image break; } sqlite3_finalize(statement); } sqlite3_close(database); } 总结
以上是内存溢出为你收集整理的slite 存储图片全部内容,希望文章能够帮你解决slite 存储图片所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)