Главная страница
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.032 c
4-1117720650
DmitryShevelev
2005-06-02 17:57
2005.07.31
Delphi 6. Обработка ошибок в Graphics


14-1121087569
oldman
2005-07-11 17:12
2005.07.31
Ни фига себе прикол!!!


3-1119434430
snowman2002
2005-06-22 14:00
2005.07.31
Вопрос по локальным базам данных


14-1120785225
Миллиадр
2005-07-08 05:13
2005.07.31
Как называются числа больше миллиарда ?


14-1120705203
Viktop
2005-07-07 07:00
2005.07.31
Установка Update на Delphi 2005