首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iphone中将十六进制值转换为blob

如何在iphone中将十六进制值转换为blob
EN

Stack Overflow用户
提问于 2012-04-18 17:46:46
回答 1查看 251关注 0票数 2

在我的应用程序中,我有一个十六进制类型的图像;我想转换成blob类型并保存到数据库中;

这是如何可能的。

关于K L白酒

EN

回答 1

Stack Overflow用户

发布于 2012-04-18 19:36:37

据我所知,它是base64编码的,假设你从web服务获得图像数据,你需要将接收到的字符串数据编码成base64编码。

代码语言:javascript
复制
NSData* data=[[NSData alloc] initWithBase64EncodedString:base64ImageString];

然后,您可以轻松地将数据检索到UIImageView中,

代码语言:javascript
复制
UIImageView* imageView=[[UIImageView alloc] initWithImage:[UIImage imageWithData:data]];

并将图像数据作为Blob数据类型保存到sqlite中,如下代码段所示

代码语言:javascript
复制
if(insertStmt == nil) {
   const char *sql = "insert into TableName values(?,?)";
    if(sqlite3_prepare_v2(database, sql, -1, &insertStmt, NULL) != SQLITE_OK)
       NSAssert1(0, @"Error while creating update statement. '%s'", sqlite3_errmsg(database));
    }

sqlite3_bind_text(insertStmt, 1, [imageName UTF8String], -1, SQLITE_TRANSIENT);

NSData *imgData = UIImagePNGRepresentation(imageView.image);

int returnValue = -1;

returnValue = sqlite3_bind_blob(insertStmt, 2, [imgData bytes], [imgData length], NULL);

if(returnValue != SQLITE_OK)
   NSLog(@"Not OK!!!");

if(SQLITE_DONE != sqlite3_step(insertStmt))
   NSAssert1(0, @"Error while inserting. '%s'", sqlite3_errmsg(database));

sqlite3_reset(insertStmt);

[data release];
[imageView release];

从数据库检索图像数据

代码语言:javascript
复制
if(detailStmt == nil) {
 const char *sql = "Select * from TableName";
  if(sqlite3_prepare_v2(database, sql, -1, &detailStmt, NULL) != SQLITE_OK)
    NSAssert1(0, @"Error while creating detail view statement. '%s'", sqlite3_errmsg(database));
 }

 if(SQLITE_DONE != sqlite3_step(detailStmt)) {
 NSData *data = [[NSData alloc] initWithBytes:sqlite3_column_blob(detailStmt, 2) length:sqlite3_column_bytes(detailStmt, 2)];

  if(data == nil)
     NSLog(@"No image found.");
  else
    imageview.image = [UIImage imageWithData:data];        
 }  

致以敬意,

马约尔

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10206864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档