Извлекаем картинку из БД.
try
MS := TMemoryStream.Create;
jpeg1 := TJPEGImage.Create;
bmp1 := TBitmap.Create;
TGraphicField(ADOQuerySQL2008.FieldByName('Jpg_binary_min')).SaveToStream(MS);
ms.position:=0;
jpeg1.LoadFromStream(MS);
В выделенном блоке мы меняем формат картинки из jpeg в bmp. А затем "урезаем" картинку до маленького размера 160х120. Дальше можно использовать уменьшенную копию исходной картинки для линейки просмотра, например, добавив ее в элемент ListView.
bmp1.Assign(jpeg1);
arect:=rect(0,0,160,120);
BMP1.canvas.StretchDraw(arect, bmp1);
BMP1.Width:=160;
BMP1.Height:=120;
finally
bmp1.Free;
jpeg1.Free;
MS.Free;
end;
Delphi. Извлечь картинку jpg из БД, преобразовав в bmp.
Re: Delphi. Извлечь картинку jpg из БД, преобразовав в bmp.
Спасибо! На будущее, чтобы сразу можно было использовать готовый код, комментируй комментарии в коде. Ну, и о copyright не забывай. Например, так:
Код: Выделить всё
/********************************************************************/
/* Извлекаем картинку из БД. */
/* Copyright 2010, Boris-razor */
/********************************************************************/
try
MS := TMemoryStream.Create;
jpeg1 := TJPEGImage.Create;
bmp1 := TBitmap.Create;
TGraphicField(ADOQuerySQL2008.FieldByName('Jpg_binary_min')).SaveToStream(MS);
ms.position:=0;
jpeg1.LoadFromStream(MS);
/* В выделенном блоке мы меняем формат картинки из jpeg в bmp. А затем "урезаем" картинку до маленького размера 160х120. Дальше можно использовать уменьшенную копию исходной картинки для линейки просмотра, например, добавив ее в элемент ListView. */
bmp1.Assign(jpeg1);
arect:=rect(0,0,160,120);
BMP1.canvas.StretchDraw(arect, bmp1);
BMP1.Width:=160;
BMP1.Height:=120;
finally
bmp1.Free;
jpeg1.Free;
MS.Free;
end;