![]() |
|
|
#1
|
|||
|
|||
|
Проблема такая.
Есть БД в ней хранятся данные сотрудников и ФОТКи в формате jpg. У меня ни как не получается вывести фотки в отчёт, так как визуальная компонента BITMAP может работать только с bmp. Подскажите может есть jpg компонента или хитрый метод конвертирования..? |
|
#2
|
||||
|
||||
|
Что именно не получается? А как пытаетесь открыть? Есть такая штука TJPEGImage и Assign.
|
|
#3
|
|||
|
|||
|
В общем в делфях вытащил на форму такие компоненты RvProject1 RVDATASETCONNECTION их связал с запросом а запрос какраз select photo from tab
ну соответственно в отчёте висит компонента битмап которая автоматом принимает фотку сразу с запроса.. вот я и ломаю голову как эту фотку перевести в bmp или использовать компоненту в отчёте которая умеет работать с джпегом..) (так как в стандартной визуальной компоненты работающей с JPG нет) В общем катастрофа..) Последний раз редактировалось stas_hash, 11.03.2010 в 13:25. |
|
#4
|
||||
|
||||
|
Как- то так:
Код:
var MS:TMemoryStream;
JPG:TJPEGImage;
BMP:TBitMap;
begin
MS := TMemoryStream.Create;
JPG := TJPEGImage.Create;
BMP := TBitmap.Create;
(Query1.FieldByName('PHOTO') as TBlobField).SaveToStream(MS);
MS.Position := 0;
JPG.LoadFromStream(MS);
BMP.Assign(JPG);
DBImage1.Picture.Assign(BMP);
MS.Free;
JPG.Free;
BMP.Free; |
|
#5
|
|||
|
|||
|
DBImage1.Picture.Assign(BMP);
Он его пихает DBImage1 а у меня проблема то что в RAVE REPORTE есть компонента которая берёт картинки.... из БД с помощью запроса... вот так конвертировать может не получится.. так как я даже не представляю куда запихать этот код.. в моём случае.) |
|
#6
|
||||
|
||||
|
Ну так и в примере картинка берется из запроса. В чем проблема?
Набросал пример, у меня работает. только использовал вместо запроса opendialog: Код:
var
MyBitmap1: TRaveBitmap;
MyPage: TRavePage;
MS:TMemoryStream;
JPG:TJPEGImage;
BMP:TBitMap;
begin
OpenPictureDialog1.Execute;
MS := TMemoryStream.Create;
JPG := TJPEGImage.Create;
BMP := TBitmap.Create;
ms.LoadFromFile(OpenPictureDialog1.FileName);
MS.Position := 0;
JPG.LoadFromStream(MS);
BMP.Assign(JPG);
RvProject1.open;
With RvProject1.ProjMan do
begin
MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage;
MyBitmap1:=FindRaveComponent('BitMap1',MyPage) as TRaveBitmap;
MyBitmap1.Image.Assign(BMP);
MS.Free;
JPG.Free;
BMP.Free;
end;
RvProject1.SelectReport('Report1',True);
RvProject1.Execute;
RvProject1.close;Последний раз редактировалось TOJluK, 11.03.2010 в 15:39. |