Qt Widget holen und Bild speichernC++

Programme in C++. Entwicklerforum
Guest
 Qt Widget holen und Bild speichern

Post by Guest »

Ich habe das folgende Problem. Ich möchte mir ein Widget schnappen und es als Bild speichern. Ich möchte es als PNG, JPEG und TIFF speichern. Ich habe den folgenden Code geschrieben:

Code: Select all

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);
}
Das funktioniert gut auf meinem Laptop. Wenn ich ein Visual Studio-Setup erstelle, funktioniert es auch auf meinem Laptop einwandfrei, aber wenn ich es auf einem anderen PC installiere, funktioniert das PNG-Format einwandfrei (speichert das richtige Bild), aber JPEG und TIF können nicht gespeichert werden. Dann habe ich es auf einem weiteren PC ausprobiert, dort habe ich es aber direkt in Visual Studio mit der Projektdatei ausprobiert. Dort habe ich alle Projekteinstellungen wie auf meinem PC usw. und dort funktionieren JPEG und TIF nicht. PNG funktioniert, speichert aber nur ein weißes Bild auf diesem PC. Außerdem habe ich dort auch die Installationsdatei ausprobiert und es ist das gleiche PNG = weißes Bild.

Kann mir jemand helfen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post