Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: 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 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.054 c
6-1124234200
Троян
2005-08-17 03:16
2005.11.27
Как узнать входящий/исходящий трафики???...


4-1124966742
BFG9k
2005-08-25 14:45
2005.11.27
На каком порте установлен модем ?


11-1112760998
uli
2005-04-06 08:16
2005.11.27
выделение текста в EDITBOX


3-1129119063
ch_victor
2005-10-12 16:11
2005.11.27
TDataSetProvider + Win98


14-1131458363
WondeRu
2005-11-08 16:59
2005.11.27
http://podgoretsky.com/ - куда делась вся литература?