image.setColorTable(QVector<QRgb>() << 0xff0000ff); // This line is crucial
image.fill(0);?
image.setColorTable(QVector<QRgb>() << 0xff0000ff); // This line is crucial
image.fill(0);?
To copy to clipboard, switch view to plain text mode
int Client::tcpReady()
{
qint32 cmdID, counter, metaSize, CmdNbr, min, max, value, error, width, height;
forever{
if (socket->bytesAvailable() < sizeof(qint32))
{
return 0;
}
input >> cmdID;
// We get the data response with cmdID = 100 when we send a command to get parameter value
if (cmdID == 100)
{
input >> counter >> metaSize >> CmdNbr >> min >> max >> value;
}
// We get the data response with cmdID = 101 when we send a command to set parameter value
else if (cmdID == 101)
{
input >> counter >> metaSize >> CmdNbr >> error;
}
// Here we get a streaming raw image data
else if (cmdID == 1)
{
break;
}
else
{
return 0;
}
}
input >> counter >> metaSize >> width >> height;
int totalSize = width * height;
int sizeReceived = 0;
int sizeAvailable = 0;
// image.setColorTable(QVector<QRgb>() << 0xff0000ff); // This line is crucial
// image.fill(0);
while(socket->waitForReadyRead(1000) && socket->bytesAvailable())
{
sizeAvailable = socket->bytesAvailable();
if (totalSize > (sizeReceived + sizeAvailable))
{
input.readRawData(reinterpret_cast<char *>(image.bits()), sizeAvailable);
}
else
{
input.readRawData(reinterpret_cast<char *>(image.bits()), (totalSize - sizeReceived));
break;
}
sizeReceived += sizeAvailable;
}
if( !image.isNull() )
{
int result = image.save("E:/temp1.png", "PNG",1);
}
return 1;
}
int Client::tcpReady()
{
QDataStream input(socket);
input.setVersion(QDataStream::Qt_4_0);
input.setByteOrder(QDataStream::LittleEndian);
qint32 cmdID, counter, metaSize, CmdNbr, min, max, value, error, width, height;
QByteArray buffer;
forever{
if (socket->bytesAvailable() < sizeof(qint32))
{
return 0;
}
input >> cmdID;
// We get the data response with cmdID = 100 when we send a command to get parameter value
if (cmdID == 100)
{
input >> counter >> metaSize >> CmdNbr >> min >> max >> value;
}
// We get the data response with cmdID = 101 when we send a command to set parameter value
else if (cmdID == 101)
{
input >> counter >> metaSize >> CmdNbr >> error;
}
// Here we get a streaming raw image data
else if (cmdID == 1)
{
break;
}
else
{
return 0;
}
}
input >> counter >> metaSize >> width >> height;
int totalSize = width * height;
int sizeReceived = 0;
int sizeAvailable = 0;
QImage image = QImage(width, height, QImage::Format_Indexed8);
// image.setColorTable(QVector<QRgb>() << 0xff0000ff); // This line is crucial
// image.fill(0);
while(socket->waitForReadyRead(1000) && socket->bytesAvailable())
{
sizeAvailable = socket->bytesAvailable();
if (totalSize > (sizeReceived + sizeAvailable))
{
input.readRawData(reinterpret_cast<char *>(image.bits()), sizeAvailable);
}
else
{
input.readRawData(reinterpret_cast<char *>(image.bits()), (totalSize - sizeReceived));
break;
}
sizeReceived += sizeAvailable;
}
if( !image.isNull() )
{
int result = image.save("E:/temp1.png", "PNG",1);
}
return 1;
}
To copy to clipboard, switch view to plain text mode
Bookmarks