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

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

По поводу GIF`а [D5, Win95/98]


Gerda ©   (2003-01-24 17:57:00) 

Дарова Мастера.
Поставил себе компонент GIFImage, нужно проделать такие действия:
1) Забацать скриншот экрана
2) сжать его в гиф
3) отослать этот гиф потоком через ServerSocket
4) принять на клиенте
5) ну и отобразить

по 1,4,5 вопросов нет, а вот как 2,3 ?? не знаю. Многое перепробовал ничего не получается, мож кто поможет ??
Заранее благодарен.
З.Ы. Вот так я пытаюсь это сделать:
bmp := TBitmap.Create;
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
bmp.PixelFormat:=pf24bit;
ScreenDC:=GetDC(GetDesktopWindow);
BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, ScreenDC, 0, 0, SRCCopy);
Stream:=TmemoryStream.Create;
GIFImage.SaveToStreamSingle(Stream, bmp, false, false, clWhite);
Socket.SendStream(Stream, Stream.Size);
Stream.Free;
ReleaseDC(Handle, ScreenDC);
bmp.Free;


Gerda   (2003-01-27 20:17:00) [1]

Меня пока это не интересует...


XmPL   (2003-01-27 16:26:00) [2]

может подскажешь как собираешься делать скриншот если на данный момент работает OpenGL или DirectX ?


Gerda   (2003-01-27 16:14:00) [3]

Ну че никто не знает ??


Gerda   (2003-01-24 18:47:00) [4]

И еще на клиенте я принимаю так:
Stream := TMemoryStream.Create;
Screen.Cursor := crHourglass;
try
while True do begin
nReceived := Socket.ReceiveBuf (Buffer, sizeof (Buffer));
if nReceived <= 0
then Break
else Stream.Write (Buffer, nReceived);
Sleep (200); // delay (200 milliseconds)
end;
Stream.Position := 0; // reset and load the temporary file
Form2.GIFImage1.LoadFromStream(Stream);
finally
Stream.Free;
Screen.Cursor := crDefault;
end;


Gerda   (2003-01-24 18:41:00) [5]

Да в строке Socket.SendStream(Stream, Stream.Size); я переборщил там тока Socket.SendStream(Stream);


Наверх

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