Delphi. Извлечь картинку jpg из БД, преобразовав в bmp.

Программисты. Кто они и зачем? Кому нужен их нелегкий труд?
Ответить
Boris
Не буду хвастать, но у меня больше 1200 сообщений на этом форуме
Сообщения: 1243
Зарегистрирован: 16 окт 2010, 14:47
Откуда: Москва

Delphi. Извлечь картинку jpg из БД, преобразовав в bmp.

Сообщение Boris » 22 дек 2010, 11:48

Извлекаем картинку из БД.

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;

Аватара пользователя
K Z
Я создал более 2500 сообщений на форуме!
Сообщения: 2804
Зарегистрирован: 15 ноя 2010, 20:57

Re: Delphi. Извлечь картинку jpg из БД, преобразовав в bmp.

Сообщение K Z » 06 янв 2011, 18:23

Спасибо! На будущее, чтобы сразу можно было использовать готовый код, комментируй комментарии в коде. Ну, и о 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;

Ответить

Вернуться в «Секреты программирования»