我有以下問題。我想抓取一個小部件並將其保存爲圖像。我想把它保存爲png,jpeg和tiff。我寫了下面的代碼:Qt抓取小部件並保存圖像
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安裝程序時,它也可以在我的筆記本電腦上正常工作,但是當我將它安裝在另一臺PC上時,則png格式可以正常工作(保存正確的圖像),但不能保存jpeg和tif。然後我在另一臺電腦上試了一下,但是我在Visual Studio中直接用項目文件嘗試了它。在那裏我有我的電腦等所有項目設置,並有jpeg和tif不工作。 PNG的作品,但它只保存在該電腦上的白色圖像。此外,我還嘗試了安裝文件和其相同的PNG =白色圖像。
任何人都可以幫助我嗎?
你需要圖像的插件,例如見這個問題:http://stackoverflow.com/questions/2241141/embedded-jpg-resources-not-loading-in-qt-應用程序 – 2013-05-03 15:19:23
我已經嘗試複製exe文件夾中的4個dll。但它也不起作用。這也不能解釋爲什麼在一臺電腦上的PNG圖像是白色的,爲什麼它不能保存jpeg和png文件,當我在Visual Studio調試模式下嘗試它時。 ? – CmasterG 2013-05-03 16:32:14