Od kilku dni nie mogę sobie poradzić z następującym problemem. Chcę za pomocą TServerSocket przesłać do klienta pomniejszony zrzut ekranu skompresowany do formatu JPG, jednak za każdym razem wychodzi mi na klienci pusty obrazek.
float skalax, skalay;
int i,j,x1,y1;
TCanvas *Can=new TCanvas;
Graphics::TBitmap *B=new Graphics::TBitmap;
Can->Handle=GetWindowDC(GetDesktopWindow());
B->Width=x;
B->Height=y;
skalax = (Screen->Width)/(B->Width);
skalay = (Screen->Height)/(B->Height);
for (i=0; i<=B->Width; i++)
for (j=0; j<=B->Height; j++)
{
x1=i*skalax;
y1=j*skalay;
B->Canvas->Pixels[i][j]=Can->Pixels[x1][y1];
}
delete Can;
TJPEGImage *jpg = new TJPEGImage();
jpg->CompressionQuality =80;
jpg->Assign(B);
jpg->Compress();
TMemoryStream *mem=new TMemoryStream;
mem->Position=0;
serwer->Memo1->Lines->Add(IntToStr(mem->Size));
B->SaveToStream(mem);
int g=mem->Size;
for(i=0;i<serwer->ServerSocket1->Socket->ActiveConnections;i++)
{
serwer->ServerSocket1->Socket->Connections[i]->SendBuf(&g,sizeof(g)+1);
serwer->ServerSocket1->Socket->Connections[i]->SendStream(mem);
} */