Вниз
Скачать: CL | DM;

Габариты Image   Найти похожие ветки 

 
iamkate ©   (2005-10-13 09:00) [0]

Я загружаю из blob-поля в Image картинку вот таким образом:

procedure OpenPage (Sender: TObject);
var buff:ansistring;
   lob:tloblocator;
   ms:TMemoryStream;
begin
 inherited;
 if PageControl.ActivePage = tshPhoto Then
   begin
     With OracleQuery do
     begin
       DeleteVariables;
       DeclareVariable("id",otinteger);
       DeclareVariable("photo",otblob);
       Sql.Clear;
       Sql.Add("Begin K_Read_Photo(:id,:Photo); End;");
       SetVariable("id",FKeyFieldValue);
       lob:= TLOBLocator.Create(OracleSession,otblob);
       SetComplexVariable("photo",lob);
       Execute;  
         lob.SaveToFile("c:\1.bmp");
         image.Picture.LoadFromFile("c:\1.bmp");
     end;
   end;
end;

При этом картинка растягивается по размеру Image и, естественно, получается деформированной.
Подскажите, пожалуйста, как подогнать прпорции Image под размер картинки, чтобы она выводилась в нормальном виде?
И еще, можно ли как-нибудь обойтись без предварительного сохранения картинки в файл, перед загрузкой ее в Image?


 
ЮЮ ©   (2005-10-13 09:07) [1]

Не сохранять в файл, а - в MemoryStream, откуда загрузить в TBitmap, у которого потом получить Width и Height для расчета размеров TImage


 
iamkate ©   (2005-10-13 12:01) [2]

У меня была попытка использовать MemoryStream вот таким вот образом:

ms := TMemoryStream.Create;
SetLength(buff, lob.Size);
lob.Read(buff[1],lob.Size);
ms.setSize(length(buff));
ms.Write(buff[1],length(buff));
image.Picture.bitmap.LoadFromStream(ms);

На последнюю строчку ругается.


 
ЮЮ ©   (2005-10-14 04:12) [3]

>На последнюю строчку ругается.

Я тоже ругаюсь, ибо причен для "ругани" здесь много

1) image.Picture (или image.Picture.bitmap) может быть  nil
 
 bmp := TBitmap.Create;
 try
   bmp.LoadFromStream(ms);
   image.Picture.Assign(bmp);
 finally
   bmp.Free
 end;

2) стрим не "перемотан" в начало (ms.Position := 0)



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.09 c
5-1112860368
ancara
2005-04-07 11:52
2005.11.27
Как добавить пути к модулям?


1-1130902739
Konrads
2005-11-02 06:38
2005.11.27
Масштабирование в Excel


14-1130674520
Очкарик
2005-10-30 15:15
2005.11.27
Зрение за компом


3-1129630838
vinni2000
2005-10-18 14:20
2005.11.27
Работа с временной или виртуальной таблицей?


2-1131461802
alex_1234
2005-11-08 17:56
2005.11.27
Опять туплю: left join ???




   Наверх