我从网络收到一个包含PNG文件的字节数组。我需要将其设置为像素图,并将其设置为我的QGlWidget的纹理。当我运行下面的程序时,pixmap处于调试模式,不包含任何内容。但是,bytes包含从网络接收到的整个字节数组。
void MainWindow::dataFromServer(QByteArray bytes)
{
// QByteArray bytes;
QBuffer buffer(&bytes);
QPixmap pixmap;
// pixmap = QPixmap::grabWidget(this);
buffer.open(QIODevice::WriteOnly);
pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format
emit sendPixmapToWidget(pixmap);
}这里我将像素映射设置为texture:
void GlWidget::pixmapCatchFromForm(QPixmap pixmap)
{
deleteTexture(texture);
// image->loadFromData(bytes, "PNG");
texture = bindTexture(pixmap);
qDebug() << texture; // returns 1
updateGL();
}发布于 2013-10-29 21:20:55
QPixmap::save(..)将QPixmap的内容保存到缓冲区,你肯定想用QPixmap::loadFromData(..)做相反的事情吗?
https://stackoverflow.com/questions/19632280
复制相似问题