2016-07-10 65 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