首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC发送图像时,图像变形,变色,重叠,该怎么处理

2012-01-23 
VC发送图像时,图像变形,变色,重叠做个摄像头监控程序,服务端从内存中读取图像数据然后发送,可是不知怎么滴

VC发送图像时,图像变形,变色,重叠
做个摄像头监控程序,服务端从内存中读取图像数据然后发送,可是不知怎么滴,发送的图像变形了,具体的表现为图像有重叠,颜色有改变,就在下面的代码段。但是如果一下子写入文件中就没有问题,而分段发送就有问题,郁闷啊。求大侠帮帮我啊,郁闷了好几天都没搞定。
#define SIZE4096

typedefstruct
{
intID;
DWORDnSize;
charlpParam[SIZE];
}COMMAND;

//4.2 发送图像数据
dwCurrent = 0;
for ( i = 0; i < dwJpgSize / SIZE; i++ )
{
memset( &cmd, 0, sizeof(cmd) );
cmd.ID = VideoCap;
cmd.nSize = SIZE;
memcpy( cmd.lpParam, lpData + dwCurrent, SIZE );
dwCurrent += SIZE;
if ( send( sClient, (char *)&cmd, sizeof(cmd), 0 ) == SOCKET_ERROR )
{
bRet = FALSE;
goto _End;
}


}

if ( dwJpgSize % SIZE )
{
dwOther = dwJpgSize % SIZE;
memset( &cmd, 0, sizeof(cmd) );
cmd.ID = VideoCap;
cmd.nSize = dwOther;
memcpy( cmd.lpParam, lpData + (dwJpgSize / SIZE - 1) * SIZE, dwOther );
if ( send( sClient, (char *)&cmd, sizeof(cmd), 0 ) == SOCKET_ERROR )
{
bRet = FALSE;
goto _End;
}

}

[解决办法]
if ( send( sClient, (char *)&cmd, sizeof(cmd), 0 ) == SOCKET_ERROR )
这里最好判断一下send的返回值,是否每次都等于sizeof(cmd),并且sizeof(cmd)应该用SIZE。

热点排行