Seite 1 von 1
QImage -> save (... format, quality) ???
Verfasst: 13. August 2008 10:00
von bassjupp2oo8
Hallo!
Ich habe wirklich versucht, die Hilfe im Qt Assistent zu verstehen, aber dafür reichen meine Kenntnisse wohl noch nicht...
Ich kann einfach kein Image abspeichern!
Die Funktion heißt:
bool QImage::save(const QString &fileName, const char * format = 0, int quality = -1) const
fileName und quality sind glaub ich klar.
Aber was muss man bei format eintragen? Nur den value aus der Tabelle mit den möglichen Formaten? Kann man nicht so was wie PNG dorthin schreiben?
Wie müssen diese Werte gesetzt werden? Ich komme damit echt nicht weiter...
image.save(fileName, 0, -1) geht schon mal nicht.
Verfasst: 13. August 2008 10:54
von Christian81
Siehe Doku:
http://doc.trolltech.com/4.4/qimage.htm ... mage-files
Also "PNG" oder "BMP" oder was auch immer
genau das geht nicht!
Verfasst: 13. August 2008 12:52
von bassjupp2oo8
Dort steht:
"Simply call the save() function ", leider finde ich das nicht so simple!
Denn save() gibt es nicht. SOndern zB die von mir oben genannte Funktion, die halt gefüttert werden will.
Ist ja schön, dass die Formate in der Tabelle unterstützt werden, aber die kann ich im Funktionsaufruf leider nicht hinschreiben (sonst Fehlermeldung).
In der Tabelle weiter unten Member Type Documentation
enum QImage::Format
sind ja auch alle Formate und ein value dazu. Ich dachte, dass man vielleicht auch diesen value angeben kann. Aber das geht ja auch nicht.
Kann mir jemand mal drei Zeilen aufschreiben mit einem Bsp, was man da in die Klammer zB schreiben kann???
Das würde mir glaub ich sehr weiterhelfen...
(load hingegen klappt ja...)
Verfasst: 13. August 2008 13:02
von Christian81
Was ist so schwer einen Dateinamen und ein Format anzugeben?
image.save("temp.png", "PNG")
Verfasst: 13. August 2008 15:01
von bassjupp2oo8
Wenn ich schreibe
image.save(":/images/bild1.png", "png")
dann kommt beim Kompilieren zwar kein Fehler, aber es ist auch kein Bild in dem Ordner hinterher.
Es wird nichts abgespeichert!
Verfasst: 13. August 2008 15:02
von Christian81
Erstens kann man das Testen - der Returnwert von QImage::save() sagt Dir ob das Speichern geklappt hat oder nicht und zweitens ist ":/images/bild1.png" kein korrekter Pfad.
Verfasst: 13. August 2008 15:21
von bassjupp2oo8
Hab mir das in einem Beispiel so angesehen, dass man aus so einem Pfad etwas load() -en kann.
Warum kann man denn so nicht auch abspeichern?
(Und wie dann? Für doofe...)
Verfasst: 13. August 2008 16:28
von Ginsengelf
bassjupp2oo8 hat geschrieben:Hab mir das in einem Beispiel so angesehen, dass man aus so einem Pfad etwas load() -en kann.
Warum kann man denn so nicht auch abspeichern?
Weil du damit ein in die .exe eingebundenes Bild lädst, und du nicht während dein Programm läuft an dessen exe herumbasteln kannst.
Speichern kannst du, indem du einen korrekten Pfad angibst, wie z.B. c:\\wurst.png (Win) oder /home/username/wurst.png (Linux)
Ginsengelf
Verfasst: 15. August 2008 07:59
von bassjupp2oo8
ja, einmal hat es nun geklappt, so wie oben beschrieben.
pixmap.save("c:/test/bild1.png", "png", 50);
Aber nun wieder nicht...
versteh einer die Computer...
(oder die Trolltech Hilfe...)
Ich muss wohl noch viel lernen!

Verfasst: 15. August 2008 08:48
von gerome69
bassjupp2oo8 hat geschrieben:ja, einmal hat es nun geklappt, so wie oben beschrieben.
pixmap.save("c:/test/bild1.png", "png", 50);
Aber nun wieder nicht...
versteh einer die Computer...
(oder die Trolltech Hilfe...)
Ich muss wohl noch viel lernen!

Vielleicht deshalb, weil die Datei beim 2. Mal schon existiert?
http://doc.trolltech.com/4.4/qpixmap.html#save
schweigt sich über das Verhalten in einem solchen Fall aus.
Aber zB QFile::copy versagt auch bei existenter Datei!
Gruß, Gérôme