我有以下问题。我想抓取一个小部件并将其保存为图像。我想将它保存为 png、jpeg 和 tiff。我写了以下代码:
QString s = QFileDialog::getSaveFileName(this, "Save as", "Choose a filename", "PNG(*.png);; TIFF(*.tiff *.tif);; JPEG(*.jpg *.jpeg)");
std::string current_string = s.toLocal8Bit().constData();
//current_string = current_string + ".png";
char * buffer = new char[current_string.length()];
std::string temp = buffer;
char* temp2 = &temp[0];
strcpy(buffer, current_string.c_str());
char* pch = strtok (temp2,".");
pch = strtok (NULL, ".");
if(!QPixmap::grabWindow(m_widget->winId()).save(buffer,pch))
{
QMessageBox::warning(this, "File could not be saved", "ok", QMessageBox::Ok);
}
这在我的笔记本电脑上运行良好。当我进行 Visual Studio 设置时,它在我的笔记本电脑上也可以正常工作,但是当我将它安装在另一台电脑上时,png 格式可以正常工作(保存正确的图像),但无法保存 jpeg 和 tif。然后我在另一台电脑上尝试了它,但我直接在 Visual Studio 中使用项目文件进行了尝试。那里有我的电脑等所有项目设置,并且 jpeg 和 tif 不起作用。PNG 有效,但它只在该电脑上保存一个白色图像。此外,我还在那里尝试了安装文件及其相同的 PNG = 白色图像。
谁能帮我?