QImage -> save (... format, quality) ???

Alles rund um die Programmierung mit Qt
Antworten
bassjupp2oo8
Beiträge: 47
Registriert: 17. Juli 2008 09:45

QImage -> save (... format, quality) ???

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Siehe Doku: http://doc.trolltech.com/4.4/qimage.htm ... mage-files
Also "PNG" oder "BMP" oder was auch immer
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bassjupp2oo8
Beiträge: 47
Registriert: 17. Juli 2008 09:45

genau das geht nicht!

Beitrag 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...)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was ist so schwer einen Dateinamen und ein Format anzugeben?
image.save("temp.png", "PNG")
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bassjupp2oo8
Beiträge: 47
Registriert: 17. Juli 2008 09:45

Beitrag 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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bassjupp2oo8
Beiträge: 47
Registriert: 17. Juli 2008 09:45

Beitrag 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...)
Ginsengelf
Beiträge: 79
Registriert: 2. Mai 2007 10:21

Beitrag 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
bassjupp2oo8
Beiträge: 47
Registriert: 17. Juli 2008 09:45

Beitrag 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! :roll:
gerome69
Beiträge: 188
Registriert: 28. April 2006 22:50
Wohnort: Berlin
Kontaktdaten:

Beitrag 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! :roll:
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
Antworten