【问题标题】:Pixmap screenshot convert to low-quality像素图屏幕截图转换为低质量
【发布时间】:2016-07-11 02:56:20
【问题描述】:

我正在使用 qt creator 创建示例远程协助 我的项目有两部分服务器和客户端 客户端截取屏幕截图并将其发送到服务器,但截图图片质量很高,而且尺寸太大,从局域网或互联网协议发送它不是一个好主意 我需要调整图像大小或将其转换为低质量,以便几乎可以识别

这是我的截图代码

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

【问题讨论】:

    标签: c++ qt qpixmap


    【解决方案1】:

    看起来您知道如何更改图片大小,为什么还不够?

    只要做:

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

    并发送smallPixmap 而不是originalPixmap

    您也可以(应该)使用QImageWriter 压缩图像,这将允许您创建以 jpeg 格式压缩的图像,这也应该减少内存使用量。

    Check this,看起来他们正在做你想做的事情。

    【讨论】:

    • 谢谢你,但你能告诉我如何用 QImageWrite 压缩 originalPixmap 吗?
    • 检查提供的链接。首先将其转换为QImage (QPixmap::toImage()),然后使用QImageWriter,如下所示:stackoverflow.com/a/5443085/3336423
    猜你喜欢
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2011-07-20
    • 2021-11-25
    • 2020-08-01
    相关资源
    最近更新 更多