Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6301
Последний выпуск: 19.06.2015

BLOB и libmysql - как извлечь картинку?

59K
17 февраля 2012 года
nick42
6 / / 10.06.2010
Прошу помочь в таком вопросе: приложение работает с базой данных mysql и использует в таблице структуру BLOB. Далее, - на форме размещается картинка *.bmp , загружаемая из файла (при желании). Я хочу картинку грузить из базы. Для работы с базой подключил библиотеку libmysql.dll. Записывать картинку в базу - я освоил. Теперь бы вот "вытянуть" ее оттуда; не придумаю..., про потоки с этой библиотекой не слышал. Может, что-нибудь порекомендуете?
1.8K
20 февраля 2012 года
Kama
153 / / 04.05.2006
какие потоки?
берешь вытаскиваешь бинарные данные простым запросом типа:
SELECT bin_data FROM images WHERE...;

в PHP коде пишешь
$img = imagecreatefromstring(bin_data);
я работаю постоянно с png,jpg,gif
поэтому потом пишу
imagecreatepng()/imagecreategif, imagecreatejpeg,
для bmp тоже наверника есть функция (я не пользовался)
ну и все
и самое главное на забудь прописать заголовки
header('Pragma: no-cache');
header("Content-Type: image/gif"); //для gif например
59K
20 февраля 2012 года
nick42
6 / / 10.06.2010
Kama, спасибо! И я только что разобрался с этой проблемой. Здесь я (виноват...) немного некорректно формулировал свой вопрос, - я пишу приложение не в PHP, а в С++, конкретнее - в C++Builder, и еще конкретнее - посредством динамической библиотеки libmysql.dll. Получилось у меня через поток, и все там достаточно просто, но поначалу некоторые особенности мне показались нелогичными. Сейчас все работает. Вот в таком виде (может еще кому-нибудь пригодится)___

Код:
query="SELECT imag FROM myBaza.config WHERE indd=42";
  Zapros();
  if (zF==0)
  {
     TMemoryStream *mas = new TMemoryStream;
     Res = mysql_store_result(Con);
     char * *bb = mysql_fetch_row(Res);
     unsigned long *ds = mysql_fetch_lengths(Res);
     mas->Write(&bb[0][0], ds[0]);
     mas->Position = 0;
     foto->Picture->Bitmap->LoadFromStream(mas);
     delete mas;
  }

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог