博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios 向sqlite数据库插入和读取图片数据
阅读量:6434 次
发布时间:2019-06-23

本文共 1793 字,大约阅读时间需要 5 分钟。

向sqlite数据库插入和读取图片数据 (for ios)假定数据库中存在表 test_table(name,image), 下面代码将图片文件test.png的二进制数据写到sqlite数据库:char *name = "test";NSString * nameString = [NSString stringWithCString:name encoding:NSUTF8StringEncoding];NSString * filePath = [[NSBundle mainBundle] pathForResource:nameString ofType:@"png"];if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]){    NSData * imgData = UIImagePNGRepresentation([UIImage imageWithContentsOfFile:filePath]);    const  char * sequel = "insert into test_table(name,image) values(?,?)";     sqlite3_stmt * update;    if (sqlite3_prepare_v2(database, sequel, -1, &update, NULL) == SQLITE_OK)    {        sqlite3_bind_text(update, 1, name, -1, NULL);        sqlite3_bind_blob(update, 2, [imgData bytes], [imgData length], NULL);        if( sqlite3_step(update) == SQLITE_DONE)        {           NSLog(@"已经写入数据");        }        sqlite3_finalize(update);    }  }else{    NSLog(@"文件不存在");}下面代码从数据库中读取图片二进制数据,然后显示图片:const char * sequel = "select image from test_table where name=?";sqlite3_stmt * getimg;if (sqlite3_prepare_v2(database, sequel, -1, &getimg, NULL) == SQLITE_OK){    char *name = "test";    sqlite3_bind_text(update, 1, name, -1, NULL);    if(sqlite3_step(getimg)  == SQLITE_ROW)    {        int bytes = sqlite3_column_bytes(getimg, 0);        Byte * value = (Byte*)sqlite3_column_blob(getimg, 1);        if (bytes !=0 && value != NULL)        {            NSData * data = [NSData dataWithBytes:value length:bytes];            UIImage * img = [UIImage imageWithData:data];            UIImageView * aview =[[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, IMAGE_WIDTH, IMAGE_HEIGHT)];            aview.image = img;            [self.view addSubview:aview];            [aview release];         }     }     sqlite3_finalize(getimg);}

 

转:

参考:

转载地址:http://wvqga.baihongyu.com/

你可能感兴趣的文章
ceph 常用命令记录(完善中...)
查看>>
C# 7.3新特性一览
查看>>
用Chrome开发者工具调试一切
查看>>
简易mvvm库的设计实现
查看>>
AppDynamics把业务交易跟踪扩展到SAP环境
查看>>
[Three.js]Three.js中文文档-自定义混合方程常数
查看>>
Kafka 处理器客户端介绍
查看>>
通过分析这段代码的进化历程,或许能够加深您对JavaScript的作用域的理解
查看>>
创建对象(一):创建与继承
查看>>
深入浅出vue1.0:Vue 实例
查看>>
XML 实体扩展攻击
查看>>
浅谈 OneAPM 在 express 项目中的实践
查看>>
kubernetes节点选择器
查看>>
Sublime Text 3初体验
查看>>
快速排序&归并排序
查看>>
将字符串转换成二维码
查看>>
AsyncTask的小分析
查看>>
使用Redis实现关注关系
查看>>
Go抓取网页数据并存入MySQL和返回json数据<三>
查看>>
MySQL复制介绍及搭建
查看>>