2016-07-10 7 views
0

Я использую qt creator для создания образца Удаленный помощник В моем проекте есть 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

спасибо, но можете ли вы рассказать мне, как я могу сжать originalPixmap с QImageWrite? – amir

+0

Проверьте ссылки. Сначала преобразуйте его в 'QImage' (' QPixmap :: toImage() '), а затем используйте' QImageWriter', как предлагается здесь: http://stackoverflow.com/a/5443085/3336423 – jpo38

 Смежные вопросы

  • Нет связанных вопросов^_^