Saving and retrieving images to and from SQLite in iOS

前端 未结 1 1344
旧时难觅i
旧时难觅i 2020-12-29 16:06

I am trying to save images in to Sqlite and then load image in to an UIImageView. But it\'s not getting work. I don\'t what\'s getting wrong. Here is the code I am using. Ca

相关标签:
1条回答
  • 2020-12-29 16:53
    - (void)saveImage 
    {
      sqlite3_stmt *compiledStmt;
      sqlite3 *db;
      if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
      NSString *insertSQL=@"insert into Image(image) VALUES(?)";
      if(sqlite3_prepare_v2(db,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &compiledStmt, NULL) == SQLITE_OK){
      UIImage *image = [UIImage imageNamed:@"vegextra.png"];
      NSData *imageData=UIImagePNGRepresentation(image);
    
      sqlite3_bind_blob(compiledStmt, 1, [imageData bytes], [imageData length], SQLITE_TRANSIENT);
    
      if(sqlite3_step(compiledStmt) != SQLITE_DONE ) {
          NSLog( @"Error: %s", sqlite3_errmsg(db) );
      } else {
          NSLog( @"Insert into row id = %lld", (sqlite3_last_insert_rowid(db)));
      }
    
    sqlite3_finalize(compiledStmt);
      }
     }
    sqlite3_close(db);
    }
    
    - (void)showImage
     {
       sqlite3_stmt *compiledStmt;
       sqlite3 *db;
       int i = 1;
       if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
       NSString *insertSQL = [NSString stringWithFormat:@"Select image from Image Where Id = %d",i];
       if(sqlite3_prepare_v2(db,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &compiledStmt, NULL) == SQLITE_OK) {
       while(sqlite3_step(compiledStmt) == SQLITE_ROW) {
    
       int length = sqlite3_column_bytes(compiledStmt, 0);
       NSData *imageData = [NSData dataWithBytes:sqlite3_column_blob(compiledStmt, 0) length:length];
    
       NSLog(@"Length : %d", [imageData length]);
    
      if(imageData == nil)
         NSLog(@"No image found.");
      else
         imgView.image = [UIImage imageWithData:imageData];
       }
     }
     sqlite3_finalize(compiledStmt);
    }
    sqlite3_close(db);
    }
    
    0 讨论(0)
提交回复
热议问题