gpt4 book ai didi

qt - QImage 的 QT save() 函数问题

转载 作者:行者123 更新时间:2023-12-04 13:33:42 25 4
gpt4 key购买 nike

我有一个问题,几天来我一直在努力解决这个问题。我正在使用 OpenCV 从相机获取帧,然后将其转换为 QImage 并尝试将帧保存在磁盘上。我面临的问题是,如果我在 Visual Studio 中以发布/ Debug模式编译/运行代码,那么它可以正常工作。如果我为 Debug模式运行由 Visual Studio 创建的可执行文件,那么它运行良好。但是如果我在 Release模式下运行由 Visual Studio 创建的可执行文件,gui 运行良好,除了 QImage save() 函数不再工作。如果我使用 OpenCV 函数来保存帧,那么它在所有模式下都能很好地工作。我试图保存的 QImage 不是空的,因为我的注释文本框显示了我在里面打印的行,但保存函数返回 false。我真的很感激帮助。

这是一个小代码:

IplImage 和 QImage 之间的转换代码(我也用过另一个代码,结果一样)

QImage A::IplImage2QImage(const IplImage *iplImage)
{
int height = iplImage->height;
int width = iplImage->width;
if (iplImage->depth == IPL_DEPTH_8U && iplImage->nChannels == 3) {
const uchar *qImageBuffer = (const uchar*)iplImage->imageData;
QImage img(qImageBuffer, width, height, QImage::Format_RGB888);
return img.rgbSwapped();
}
else {
// qWarning() << "Image cannot be converted.";
return QImage();
}
}

void A::getFrame()
{
commentsTextBox->setText("getFrame");
if (VI.isFrameNew(device1)) {
VI.getPixels(device1, (unsigned char *)frame->imageData, false, true);
}
QImage qimg2 = IplImage2QImage(frame);
m_Label->setPixmap(QPixmap::fromImage(qimg2));
if (!qimg2.isNull()) {
x = qimg2.save("C:\\Data\\test.jpg");
commentsTextBox->append("notEmpty33");
}
}

最佳答案

我对 QImage::load() 有同样的问题。我将在 alexisdm 的链接中发布一个解决方案的副本,以使其更清楚。

Under windows the qjpeg4.dll must in a imageformats directory under the application's directory by default.



谢谢!

关于qt - QImage 的 QT save() 函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7303665/

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