Форум: "Основная";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];
Вниз
Про отображение 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c