gpt4 book ai didi

c++ - 在 QT Creator- C++ 中使用 QPixmap 序列创建视频文件

转载 作者:行者123 更新时间:2023-11-30 02:35:09 25 4
gpt4 key购买 nike

我有 QWidget(命名为 screenshotLabel),它的内容不断变化。我可以将标签内容获取到 qpixmap(命名为 originalPixmap),如下所示。

originalPixmap = QPixmap(); 
QPixmap pixmap(screenshotLabel->size());
this->render(&pixmap);
originalPixmap = pixmap;

现在我想将它保存为视频文件。但是我做不到。如何将 QWidget 内容保存为视频文件?

最佳答案

我找到了一种使用 OpenCV VideoWriter 生成视频的方法。我在代码中留下了描述所发生情况的注释。

originalPixmap = pixmap;
qImageSingle = originalPixmap.toImage(); // Convert QPixmap to QImage

// Get QImage data to Open-cv Mat
frame = Mat(qImageSingle.height(), qImageSingle.width(), CV_8UC3, qImageSingle.bits(), qImageSingle.bytesPerLine()).clone();

namedWindow("MyVideo", CV_WINDOW_AUTOSIZE);
imshow("MyVideo", frame);

vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_PNG_COMPRESSION);
compression_params.push_back(9);
try {
imwrite("alpha2.png", frame, compression_params);
VideoWriter video("out2.avi", CV_FOURCC('M','J','P','G'), 10, Size(qImageSingle.width(), qImageSingle.height()), true);
for(int i=0; i<100; i++){
video.write(frame); // Write frame to VideoWriter
}
}
catch (runtime_error& ex) {
fprintf(stderr, "Exception converting image to PNG format: %s\n", ex.what());
}

关于c++ - 在 QT Creator- C++ 中使用 QPixmap 序列创建视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33955895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com