BLOB и libmysql - как извлечь картинку?
Прошу помочь в таком вопросе: приложение работает с базой данных mysql и использует в таблице структуру BLOB. Далее, - на форме размещается картинка *.bmp , загружаемая из файла (при желании). Я хочу картинку грузить из базы. Для работы с базой подключил библиотеку libmysql.dll. Записывать картинку в базу - я освоил. Теперь бы вот "вытянуть" ее оттуда; не придумаю..., про потоки с этой библиотекой не слышал. Может, что-нибудь порекомендуете?
берешь вытаскиваешь бинарные данные простым запросом типа:
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 например
Код:
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;
}
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;
}