100分请问:截取对话框一个矩形内的图像后如何通过socket传输
100分请教:截取对话框一个矩形内的图像后怎么通过socket传输?
请教:截取客户端对话框的图像后怎么通过socket传到服务端,然后通过服务端把这张图片传输到其他连接到这个服务端的机器上并显示?
VC初学者,在网上查了很多资料,依然一知半解,请教各位高手了。
附上截图的函数,通过这个函数已经可以截取出对话框的一个矩形内的图像。
在一个按钮里:
服务端和客户端socket差不多一样:
------解决方案--------------------
如果要通过网络传输, 最好要把截好的图先压缩一下. 比如压缩成GIF或者JPEG图像格式. 然后再传输到服务器
先将位图保存到文件里把. 可以在网上找找相关的资料.
------解决方案--------------------
把图片的地址在send或sendto里当成数据指针直接传走就行了,接收方接收后按同样的图片格式进行处理就行了。
------解决方案--------------------
你可以把数据转换成文件先,再传输文件,文件传输这个网上有很多代码
------解决方案--------------------
百度VC 文件传输
------解决方案--------------------
可以直接将数据发送过去,不需要先换成图片文件,然后再发送该文件
------解决方案--------------------
像是远程教学的机制啊,商业软件多采用流媒体传送,不过比较复杂。用图片传送简单一些,最简单的就是每次截图转化成压缩格式jpg等,再zlib压缩一下,传到服务器,不用非存成文件啊,在内存转化就行。复杂一点的就是计算每次改变的区域,只传送改变的区域,这样传输的数据就少了很多,可以更流畅
------解决方案--------------------
二进制文件读取 传输
请教:截取客户端对话框的图像后怎么通过socket传到服务端,然后通过服务端把这张图片传输到其他连接到这个服务端的机器上并显示?
VC初学者,在网上查了很多资料,依然一知半解,请教各位高手了。
附上截图的函数,通过这个函数已经可以截取出对话框的一个矩形内的图像。
在一个按钮里:
- C/C++ code
CClientDC dc(this); CDC cMemDC; CBitmap cBit, *pOldBP; HBITMAP hBmp; cMemDC.CreateCompatibleDC(&dc); cBit.CreateCompatibleBitmap(&dc,rect.right,rect.bottom); pOldBP = cMemDC.SelectObject(&cBit); cMemDC.BitBlt(0,0,rect.right,rect.bottom,&dc,0,0,SRCCOPY); cMemDC.SelectObject(pOldBP); if (OpenClipboard()) //把兼容位图放到剪贴板 { EmptyClipboard(); SetClipboardData(CF_BITMAP,cBit.m_hObject); CloseClipboard(); }
服务端和客户端socket差不多一样:
- C/C++ code
WSADATA wsaData; if (WSAStartup(MAKEWORD(2,1),&wsaData)){} ServerSocket=socket(PF_INET,SOCK_STREAM,0); if(ServerSocket == INVALID_SOCKET) { return; } if((dwip=inet_addr(ip))==INADDR_NONE) { return; } sockStruct.sin_family=AF_INET; //使用TCP/IP协议 sockStruct.sin_port = htons(4321); sockStruct.sin_addr.S_un.S_addr = dwip; if(connect(ServerSocket,(LPSOCKADDR)&sockStruct,sizeof(sockStruct)) == SOCKET_ERROR) {return;} WSAAsyncSelect(ServerSocket,m_hWnd,WM_CLIENT_READCOLOSE,FD_READ|FD_CLOSE);
------解决方案--------------------
如果要通过网络传输, 最好要把截好的图先压缩一下. 比如压缩成GIF或者JPEG图像格式. 然后再传输到服务器
先将位图保存到文件里把. 可以在网上找找相关的资料.
------解决方案--------------------
把图片的地址在send或sendto里当成数据指针直接传走就行了,接收方接收后按同样的图片格式进行处理就行了。
------解决方案--------------------
你可以把数据转换成文件先,再传输文件,文件传输这个网上有很多代码
------解决方案--------------------
百度VC 文件传输
------解决方案--------------------
可以直接将数据发送过去,不需要先换成图片文件,然后再发送该文件
------解决方案--------------------
像是远程教学的机制啊,商业软件多采用流媒体传送,不过比较复杂。用图片传送简单一些,最简单的就是每次截图转化成压缩格式jpg等,再zlib压缩一下,传到服务器,不用非存成文件啊,在内存转化就行。复杂一点的就是计算每次改变的区域,只传送改变的区域,这样传输的数据就少了很多,可以更流畅
------解决方案--------------------
二进制文件读取 传输