-
February 6th, 2013, 05:55 AM
#1
Bitmap Display from Buffer received by TCP socket
I want to display my image on window without saving it.
When data is received window size changes but there is no display
on window.
My Code is:
Code:
int iBufferLength;
int iEnd;
int iSpaceRemaining;
int i;
iBufferLength = iSpaceRemaining = sizeof(chIncomingDataBuffer);
iEnd = 0;
iSpaceRemaining -= iEnd;
iBytesRead = recv(Socket, chIncomingDataBuffer+iEnd, iSpaceRemaining, 0);
iEnd+=iBytesRead;
if (iBytesRead == SOCKET_ERROR)
MessageBox(hWnd,
"Socket Error",
"Connection strt",
MB_ICONINFORMATION|MB_OK);
chIncomingDataBuffer[iEnd] = '\0';
if (lstrlen(chIncomingDataBuffer) != 0)
{
/*FILE* pfile;
pfile = fopen("test.jpeg", "wb");
fwrite(chIncomingDataBuffer,1, iBytesRead ,pfile);
fclose(pfile);*/
GetWindowRect(hWnd, &rect);
SetWindowPos(hWnd, NULL, rect.left, rect.top, cBitmap.bmWidth, cBitmap.bmHeight, 0);
HDC ThisDC = GetDC(hWnd);
DeleteDC(RemoteDC);
RemoteDC = CreateCompatibleDC(ThisDC);
DeleteObject(hbitmap);
hbitmap= CreateCompatibleBitmap(ThisDC, cBitmap.bmWidth, cBitmap.bmHeight);
SelectObject(RemoteDC, hbitmap);
ReleaseDC(hWnd, ThisDC);
BITMAPINFO bi;
HBITMAP hbmap;
int bisize = sizeof(BITMAPINFO);
memcpy(&bi, chIncomingDataBuffer+iEnd, bisize );
SetDIBits(RemoteDC, hbitmap, 0, cBitmap.bmHeight, chIncomingDataBuffer+iEnd+bisize, &bi, DIB_RGB_COLORS);
InvalidateRect(hWnd, NULL, false);
Can you find my error,,,where I'm doing wrong?
-
February 7th, 2013, 11:33 AM
#2
Re: Bitmap Display from Buffer received by TCP socket
Too much low level. Consider the following sequence:
Best regards,
Igor
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|