![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Воспроизведение картинки из 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);