Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.31;
Скачать: CL | DM;

Вниз

Про отображение BLOB типа jpeg в DBImage   Найти похожие ветки 

 
Курдль   (2005-07-11 11:09) [0]

Добрый!
Не хотелось беспокоить по пустякам, но поиск по ФАКу что-то не отработал.
Напомните, плз, как отобразить изображение типа jpeg, упакованное в BLOB-поле БД показать в DBImage?


 
Ega23 ©   (2005-07-11 11:23) [1]

uses JPEG

function LoadImage(DS:TDataSet; ImageFieldName:String):Boolean;
var
ms:TMemoryStream;
jpg:TJPEGImage;
begin
Result:=False;
try
  if (not DS.Active) or (DS.FieldByName(ImageFieldName).IsEmpty) then Exit;
  ms:=TMemoryStream.Create;
  jpg:=TJPEGImage.Create;
  /// Грузим туда, куда надо
 try
  TBLOBField(DS.FieldByName(ImageFieldName)).SaveToStream(ms);
  jpg.LoadFromStream;
   
  Result:=True;
 finally
  ms.Free;
  jpg.Free;
 end;  

except
 Result:=False;
end;

end;


 
Курдль   (2005-07-11 11:41) [2]

Спасибо!
А TJPEGImage визуальный компонент?

Значицца, как я понял, никакими шаманствами стандартный DBImage не заставить прибиндиться к полю, содержащему JPEG...


 
Ega23 ©   (2005-07-11 11:48) [3]

А TJPEGImage визуальный компонент?

Нет, это просто класс.

Значицца, как я понял, никакими шаманствами стандартный DBImage не заставить прибиндиться к полю, содержащему JPEG...

Почему? uses JPEG пропиши, я думаю заработает.


 
Ega23 ©   (2005-07-11 11:55) [4]

Виноват. JPEG действительно не хочет просто так грузить. Тогда либо калькулироемое поле делай и в него конверти из Jpeg в Bmp, либо - см. [1].
Лично я никогда DBImage не использовал - всегда сам конвертил в тот формат, в какой надо.


 
Курдль   (2005-07-11 11:57) [5]

//Почему? uses JPEG пропиши, я думаю заработает.

Нет. Не зарабатывает - я бы так просто не сдался :)


 
Курдль   (2005-07-11 22:02) [6]

А вот нефига не выходит у меня каменный цветок! :)
Хотелось бы вотт это место подробнее: "/// Грузим туда, куда надо"

И как, напр. из Вашего jpg выгрузить в, например, Image1?


 
Ega23 ©   (2005-07-12 09:45) [7]


А вот нефига не выходит у меня каменный цветок! :)
Хотелось бы вотт это место подробнее: "/// Грузим туда, куда надо"

И как, напр. из Вашего jpg выгрузить в, например, Image1?


Вот работающий пример:

ss:="select PersFaceImg,FaceDat from persadd where persid="+PersID;
quOpen(DMpas.RQTemp,ss);
Fld:=TBlobField(DMpas.RQTemp.FieldByName("PersFaceImg"));
if not fld.IsNull then
 begin
  ms:=TMemoryStream.Create;
  fld.SaveToStream(ms);
  PersImage.Picture.LoadFromStream(ms);
  ms.Free;
  lPersFaceDat.Caption:=FormatDateTime("dd/mm/yyyy",DMpas.RQTemp.FieldByName("FaceDat").AsDateTime);
 end
else
 begin
  PersImage.Picture.LoadFromFile(fnBlank);


 
Ega23 ©   (2005-07-12 09:46) [8]

Наврал. SaveToFile/LoadFromFile


 
Курдль   (2005-07-12 10:27) [9]

Моя делфя не умеет .".Picture.LoadFromStream(ms)"  :(


 
Ega23 ©   (2005-07-12 10:28) [10]

Моя делфя не умеет .".Picture.LoadFromStream(ms)"  :(

см.[8]


 
Курдль   (2005-07-12 10:41) [11]

Т.е. только с использованием временного файла?
Не, так не пойдет...
Пороюсь в своих старых проектах. Там где-то была усиленная работа BLOВ-полей с OLEContainer-ом...


 
Ega23 ©   (2005-07-12 10:46) [12]

Другой вариант - конвертить в bmp и рисовать уже bmp прямо на Canvas.



Страницы: 1 вся ветка

Текущий архив: 2005.07.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
3-1119430308
Term
2005-06-22 12:51
2005.07.31
Использование TTable, связь по нескольким полям


14-1121057122
sofs
2005-07-11 08:45
2005.07.31
Учебник по WinAPI


6-1113844381
ALex B.
2005-04-18 21:13
2005.07.31
Как узнать какой доступ к шаре(под паролем, полный доступ)?


14-1120538579
Магнум
2005-07-05 08:42
2005.07.31
Коэффициент умственного развития – «АйКью»


14-1120927175
lookin
2005-07-09 20:39
2005.07.31
Как правильно, "до 7-ми" или "до 7-и"?