2013-10-28 8 views
1

네트워크에서 PNG 파일을 포함하는 바이트 배열을 수신합니다. 이것을 픽스맵으로 설정하고 QGlWidget에 텍스처로 설정해야합니다. 아래 프로그램을 실행하면 pixmap은 디버그 모드에 있으며 아무 것도 포함하지 않습니다. 그러나 바이트에는 네트워크에서 수신 한 전체 바이트 배열이 들어 있습니다. 당신이 반대를 할 QPixmap::loadFromData(..)를 사용하려면 반드시,QPixmap을 텍스처로 설정합니다.

void GlWidget::pixmapCatchFromForm(QPixmap pixmap) 
{ 
    deleteTexture(texture); 

// image->loadFromData(bytes, "PNG"); 

    texture = bindTexture(pixmap); 

    qDebug() << texture; // returns 1 

    updateGL(); 
} 

답변

0

QPixmap::save(..) 버퍼에 QPixmap의 내용을 저장합니다

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); 
} 

여기에 나는 질감에 픽스맵을 설정?

관련 문제