2015-09-17 4 views
0

Я создал файл изображений в DBBrowser, и теперь я хочу сохранить изображения в нем, а затем получить его. Вот мой код-Сохранение и получение изображений из базы данных

-(void)saveListImages { 
    if(sqlite3_open([[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:image] UTF8String], &database) == SQLITE_OK) { 
     NSString *query = [NSString stringWithFormat:@"SELECT * FROM image where id=%i"]; 
     //NSLog(@";query = \n%@";, query); 
     sqlite3_stmt *statement; 
     if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK) { 
      while (sqlite3_step(statement) == SQLITE_ROW) { 
       if (sqlite3_column_blob(statement, 0) != NULL) { 
        //NSLog(@";read a non NULL image"); 
        NSData *data = [[NSData alloc] initWithBytes:sqlite3_column_blob(statement, 0) length:sqlite3_column_bytes(statement, 0)]; 
        imageView.image = [UIImage imageWithData:data]; 

       } 
       else { 
        NSLog(@";read a NULL image"); 
       } 
      } 
      sqlite3_finalize(statement); 
     } 
    } 
    sqlite3_close(database); 
} 
+0

Непонятно, с какими проблемами вы сталкиваетесь. Вы можете быть более конкретным? – Simon

+0

В моем проекте у меня есть представление, имеющее одно текстовое поле, а изображение и содержимое текстового поля будут сохраняться на другом представлении, и я хочу сохранить изображение с содержимым. В текущем состоянии изображения меняются, но не могут быть сохранены с имя списка в другом представлении. и я создал базу данных изображений в DBManager, но я не знаю, как сохранять изображения в базе данных и как их извлекать. – Asheesh

ответ

1

вы не можете хранить изображения в базе данных, сначала преобразовать изображение в NSString, и в вашей базе данных колонного типа изображений, установленного для BLOb

- (NSString *)encodeToBase64String:(UIImage *)image { 
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]; 
} 

- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData { 
NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters]; 
return [UIImage imageWithData:data]; 
} 

Преобразовать изображение в Base64String

NSString *imageString = [self encodeToBase64String:image]; 

    // Store base64String into Database 

когда необходимый вам показать изображение в ImageView, просто получить строку изображения из Databse чем конвертировать в image

imageView.image=[self decodeBase64ToImage:imageString]; 
+0

@Asheesh Я не понимаю, что вы хотите передать –

Смежные вопросы