c++ - 高性能 QImage 输出显示

标签 c++ qt qimage qpixmap

我正在尝试将视频输出(帧序列)输出到任何 qt 可见小部件。一开始我认为 QLabel 就足够了......但我错了。转换为像素图对于大型图像的处理器来说过于过载:例如 1080p。

还有其他解决方案吗? (不是 QLabel?)

一帧代码示例:

QImage m_outputFrameImage(width, height, QImage::Format_RGB888);
memcpy(m_outputFrameImage.bits(), m_frameRGB->data[0], height * width * 3);
QPixmap pixmap = QPixmap::fromImage(m_outputFrameImage); // BAD, slow and high load
/* Bad too (Same code?)
    QPainter painter;
    painter.begin(&pixmap);
    painter.drawImage(0, 0, m_outputFrameImage);
    painter.end();
*/
labelVideo->setPixmap(pixmap);

最佳答案

是的,将帧渲染到 QGLWidget 并让视频卡处理它。 Qt MultimediaKit、Phonon 和其他公司就是这样做的。

前段时间我分享了一些演示如何完成此任务的代码:Image scaling (KeepAspectRatioByExpanding) through OpenGL

关于c++ - 高性能 QImage 输出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11194604/

相关文章:

mysql - QTableWidget 有一个包含可检查项目的列,但我无法将复选框的切换提交给 MYSQL db

qt - 从 unsigned char* 数据构造 QImage

c++ - QImage 使用 setColorTable 自定义索引颜色

qt - 原始数据到 QImage

python - pyqt QTreeWidget setItemWidget 拖/放后消失

c++ - Q3D表面选择点信号

c++ - 内联 vs __inline vs __inline__ vs __forceinline?

c++ - tcp 缓冲区中的多个消息

c++ - QT - 是否有将几张图片组合成一张的类(class)?

C++二进制搜索没有成功运行......永远