• 6104阅读
  • 3回复

关于Qdatastream,Qbuffer,Qbytearray的处理 [复制链接]

上一主题 下一主题
离线crame
 
只看楼主 倒序阅读 楼主  发表于: 2013-03-28
下面是我在tcpsocket里面写的一个函数,由于每秒要调用5次左右,希望能将这几种数据设为全局变量,以达到提高效率的目的或者其它能提高效率的方法,希望大家有好的想法能指导小弟一下
void Clientsocket::SendPixmap()
{  
QDataStream m_DataStream(&m_ByteArray,QIODevice::WriteOnly);//初始化流      
m_DataStream.setVersion(QDataStream::Qt_5_0);//设置流的版本  
*m_pPixmap= m_pScreen->grabWindow(0);//截屏  

QBuffer m_Buffer;//用于缓存图像数据 //是否要清空QBuffer    
m_pPixmap->save(&m_Buffer,"jpg",iQuality);
m_ByteArray.resize(0);//将数组清空    
m_DataStream<<(quint64)m_Buffer.data().size();//写入将发送的大小与类型
//等待加入类型命令(quint8)CMD;    
m_ByteArray.append(m_Buffer.data());//附加图像缓存    

write(m_ByteArray);//向服务器端发送数组
}

离线彩阳

只看该作者 1楼 发表于: 2013-03-28
可以将Pixmap直接序列化给m_DataStream,然后发送。不必那么麻烦。
上海Qt开发联盟,热忱地欢迎你的加入!
离线crame
只看该作者 2楼 发表于: 2013-03-29
回 1楼(彩阳) 的帖子
m_pPixmap->save(&m_DataStream.seek(sizeof(qint64)),"jpg",iQuality);

您看是这样么

只看该作者 3楼 发表于: 2015-06-29
mark
快速回复
限100 字节
 
上一个 下一个