![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про отображение BLOB типа jpeg в DBImage [D6]
Курдль © (2005-07-11 11:09:00)Добрый!
Не хотелось беспокоить по пустякам, но поиск по ФАКу что-то не отработал.
Напомните, плз, как отобразить изображение типа jpeg, упакованное в BLOB-поле БД показать в DBImage?
Ega23 (2005-07-12 10:46:00) [1]Другой вариант - конвертить в bmp и рисовать уже bmp прямо на Canvas.
Курдль (2005-07-12 10:41:00) [2]Т.е. только с использованием временного файла?
Не, так не пойдет...
Пороюсь в своих старых проектах. Там где-то была усиленная работа BLOВ-полей с OLEContainer-ом...
Ega23 (2005-07-12 10:28:00) [3]Моя делфя не умеет .".Picture.LoadFromStream(ms)" :(
см.[8]
Курдль (2005-07-12 10:27:00) [4]Моя делфя не умеет .".Picture.LoadFromStream(ms)" :(
Ega23 (2005-07-12 09:46:00) [5]Наврал. SaveToFile/LoadFromFile
Ega23 (2005-07-12 09:45:00) [6]
А вот нефига не выходит у меня каменный цветок! :)
Хотелось бы вотт это место подробнее: "/// Грузим туда, куда надо"
И как, напр. из Вашего 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);
Курдль (2005-07-11 22:02:00) [7]А вот нефига не выходит у меня каменный цветок! :)
Хотелось бы вотт это место подробнее: "/// Грузим туда, куда надо"
И как, напр. из Вашего jpg выгрузить в, например, Image1?
Курдль (2005-07-11 11:57:00) [8]//Почему? uses JPEG пропиши, я думаю заработает.
Нет. Не зарабатывает - я бы так просто не сдался :)
Ega23 (2005-07-11 11:55:00) [9]Виноват. JPEG действительно не хочет просто так грузить. Тогда либо калькулироемое поле делай и в него конверти из Jpeg в Bmp, либо - см. [1].
Лично я никогда DBImage не использовал - всегда сам конвертил в тот формат, в какой надо.
Ega23 (2005-07-11 11:48:00) [10]А TJPEGImage визуальный компонент?
Нет, это просто класс.
Значицца, как я понял, никакими шаманствами стандартный DBImage не заставить прибиндиться к полю, содержащему JPEG...
Почему? uses JPEG пропиши, я думаю заработает.
Курдль (2005-07-11 11:41:00) [11]Спасибо!
А TJPEGImage визуальный компонент?
Значицца, как я понял, никакими шаманствами стандартный DBImage не заставить прибиндиться к полю, содержащему JPEG...
Ega23 (2005-07-11 11:23:00) [12]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;