Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Воспроизведение картинки из TMemoryStream a [D5, D6, Win95/98, WinME, NT4, Win2k, WinXP]


neodiX ©   (2002-05-23 18:15:00) 

После сохранения картинки в Stream, не могу отабразить ее в Image. Я делаю так:

procedure TForm1.Button1Click(Sender: TObject);
var bmp:tbitmap;
DC:HDC;
jpg:Tjpegimage;
ms:Tmemorystream;
begin
bmp:=Tbitmap.Create;
jpg:=tjpegimage.Create;
ms:=Tmemorystream.Create;
DC:=getDC(0);
bmp.Width:=screen.width;
bmp.Height:=screen.Height;
bitblt(bmp.Canvas.Handle,0,0,screen.Width,screen.Height,DC,0,0,srcCOPY);
jpg.Assign(bmp);
jpg.CompressionQuality:=70;
jpg.Compress;
jpg.SaveToStream(ms);
image1.Picture.Bitmap.LoadFromStream(ms);
end;

но ничего не получается. Если в место Bitmap указать Graphic у компонента image1 выдает ошибку "Access violation...". Masters в чем проблема? Вообще то есть еще вопрос: у компонента Tclientsocket есть метод SendStream, a у ТServerSocket нет метода ReadStream, так как серверу обработать/считать поток?<br>Заранее сенкс за ответы.


Набережных С.   (2002-05-23 22:11:00) [1]

Смотри:

procedure TForm2.Button2Click(Sender: TObject);
var bmp:tbitmap;
DC:HDC;
jpg:Tjpegimage;
ms:Tmemorystream;
begin
bmp:=Tbitmap.Create;
jpg:=tjpegimage.Create;
Image1.Picture.Assign(jpg); // Здесь
ms:=Tmemorystream.Create;
DC:=getDC(0);
bmp.Width:=screen.width;
bmp.Height:=screen.Height;
bitblt(bmp.Canvas.Handle,0,0,screen.Width,screen.Height,DC,0,0,srcCOPY);
jpg.Assign(bmp);
bmp.Free; // Здесь
jpg.CompressionQuality:=70;
jpg.Compress;
jpg.SaveToStream(ms);
jpg.Free; // Здесь
ms.Position:=0; // Здесь
image1.Picture.Graphic.LoadFromStream(ms);// Здесь
end;


MBo   (2002-05-23 21:15:00) [2]

jpg.loadfromStream(ms);
image1.Picture.assign(jpg);


cyborg   (2002-05-23 20:58:00) [3]

А я делал месяца 3 назад, но уже всё забыл :-)


neodiX   (2002-05-23 20:31:00) [4]

Eto nado tak napisat, vot DURAK(eto ja pro sebia). Ispravliajus:
U klassa TPicture net metoda LoadFromStream(ms).
Za takoe ubivat nado :) No vsio ze mozet kto znaet v ciom delo?


neodiX   (2002-05-23 19:10:00) [5]

так в чем же проблема???


neodiX   (2002-05-23 18:45:00) [6]

>MBo
Oшибка!!!
у метода Picture нет процедуры LoadFromStream(ms);


MBo   (2002-05-23 18:23:00) [7]

image1.Picture.LoadFromStream(ms);


Наверх

Титульная страница Поиск, карта сайта Написать письмо