2016-07-10 5 views
0

Qt 크리에이터를 사용하여 샘플 원격 지원을 만듭니다. 내 프로젝트에 2 부분 서버와 클라이언트가 있습니다. 클라이언트가 스크린 샷을 찍어 서버로 보내지 만 스크린 샷 사진은 많은 품질이 필요합니다. 너무 많은 크기와이 내 스크린 샷 코드입니다Pixmap 스크린 샷을 낮은 품질로 변환

이 거의 인식 할 수 있도록 내가 이미지 크기를 크기를 조정하거나 낮은 품질로 변환 할 필요가 로컬 영역 네트워크 또는 인터넷 프로토콜에서 보내 좋은 생각이 아니다

void MainWindow::shootScreen() 
{ 
originalPixmap = QPixmap(); // clear image for low memory situations 
          // on embedded devices. 
originalPixmap = QGuiApplication::primaryScreen()->grabWindow(0); 

//emit getScreen(originalPixmap); 

updateScreenshotLabel(); 


} 

void MainWindow::updateScreenshotLabel() 
{ 
this->ui->label_2->setPixmap(originalPixmap.scaled(this->ui->label_2- >size(), 
                Qt::KeepAspectRatio, 
                Qt::SmoothTransformation)); 
} 

답변

0

변경 방법을 알고있는 것 같습니다. n 이미지 크기, 왜 충분하지 않습니까?

QPixmap smallPixmap = originalPixmap.scaled(QSize(originalPixmap.size().x()/4, originalPixmap.size().y()/4), Qt::KeepAspectRatio,             Qt::SmoothTransformation); 

을 그리고 smallPixmap 대신 originalPixmap을 보내

그냥 않습니다.

QImageWriter을 사용하여 이미지를 압축 할 수도 있습니다. jpeg 형식으로 압축 된 이미지를 만들 수 있으므로 메모리 사용량도 줄일 수 있습니다.

Check this은 사용자가하려는 일을하는 것처럼 보입니다.

+0

고맙습니다.하지만 QImageWrite로 originalPixmap을 압축하는 방법을 알려주시겠습니까? – amir

+0

제공된 링크를 확인하십시오. 먼저 그것을 QImage (QPixmap :: toImage())로 변환 한 다음 여기에 제안 된대로 QImageWriter를 사용하십시오 : http://stackoverflow.com/a/5443085/3336423 – jpo38