sqlite数据库插入和读取图片数据 (for ios)

sqlite数据库插入和读取图片数据 (for ios),第1张

概述在iOS下用sqlite数据库存储图片,先把你的图片转换成 NSData 形式,然后在数据库添加一行 blob 数据 假定数据库中存在表 test_table(name,image), 下面代码将图片文件test.png的二进制数据写到sqlite数据库: 01 char *name = "test"; 02 NSString * nameString = [NSString stringWith

在iOS下用sqlite数据库存储图片,先把你的图片转换成 NSData 形式,然后在数据库添加一行 blob 数据

假定数据库中存在表 test_table(name,image),下面代码将图片文件test.png的二进制数据写到sqlite数据库:

@H_301_18@01
char *name = "test";
@H_301_18@02
Nsstring * nameString = [Nsstring stringWithCString:name enCoding:NSUTF8StringEnCoding];
@H_301_18@03
Nsstring * filePath = [[NSBundle mainBundle] pathForResource:nameString ofType:@"png"];
@H_301_18@04
if ([[NSfileManager defaultManager] fileExistsAtPath:filePath])
@H_301_18@05
{
@H_301_18@06
NSData * imgData = UIImagePNGRepresentation([UIImage imageWithContentsOffile:filePath]);
@H_301_18@07
const char * sequel = "insert into test_table(name,image) values(?,?)";
@H_301_18@08
@H_301_18@09
sqlite3_stmt * update;
@H_301_18@10
if (sqlite3_prepare_v2(database,sequel,-1,&update,NulL) == sqlITE_OK)
@H_301_18@11
{
@H_301_18@12
sqlite3_bind_text(update,1,name,NulL);
@H_301_18@13
sqlite3_bind_blob(update,2,[imgData bytes],[imgData length],NulL);
@H_301_18@14
if( sqlite3_step(update) == sqlITE_DONE)
@H_301_18@15
{
@H_301_18@16
NSLog(@"已经写入数据");
@H_301_18@17
}
@H_301_18@18
sqlite3_finalize(update);
@H_301_18@19
}
@H_301_18@20
}
@H_301_18@21
else
@H_301_18@22
{
@H_301_18@23
NSLog(@"文件不存在");
@H_301_18@24
}
@H_301_18@25
@H_301_18@26
下面代码从数据库中读取图片二进制数据,然后显示图片:
@H_301_18@27
const char * sequel = "select image from test_table where name=?";
@H_301_18@28
sqlite3_stmt * getimg;
@H_301_18@29
if (sqlite3_prepare_v2(database,&getimg,NulL) == sqlITE_OK)
@H_301_18@30
{
@H_301_18@31
char *name = "test";
@H_301_18@32
sqlite3_bind_text(update,NulL);
@H_301_18@33
if(sqlite3_step(getimg) == sqlITE_ROW)
@H_301_18@34
{
@H_301_18@35
int bytes = sqlite3_column_bytes(getimg,0);
@H_301_18@36
Byte * value = (Byte*)sqlite3_column_blob(getimg,1);
@H_301_18@37
if (bytes !=0 && value != NulL)
@H_301_18@38
{
@H_301_18@39
NSData * data = [NSData dataWithBytes:value length:bytes];
@H_301_18@40
UIImage * img = [UIImage imageWithData:data];
@H_301_18@41
UIImageVIEw * avIEw =[[UIImageVIEw alloc] initWithFrame:
@H_301_18@42
CGRectMake(0.0,0.0,IMAGE_WIDTH,IMAGE_HEIGHT)];
@H_301_18@43
avIEw.image = img;
@H_301_18@44
[self.vIEw addSubvIEw:avIEw];
@H_301_18@45
[avIEw release];
@H_301_18@46
}
@H_301_18@47
}
@H_301_18@48
sqlite3_finalize(getimg);
@H_301_18@49
}
总结

以上是内存溢出为你收集整理的sqlite数据库插入读取图片数据 (for ios)全部内容,希望文章能够帮你解决sqlite数据库插入和读取图片数据 (for ios)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1172292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存