Seite 1 von 1

Bilder speichern

Verfasst: 21. Juni 2006 19:00
von Mati
Hallo,

ich finde weder Beispiele noch SUFU hat genützt.
Ich weiß einfach nicht wie ich ein Bild speichern soll.
hier mal mein kurzansatz:

Code: Alles auswählen

curr_img = "/pfad/zum/bild.png"
//QImageWriter* img_writer = new QImageWriter("/home/","png");
    QImage *img = new QImage(curr_img);
    //img->load(curr_img);
    //img_writer->write(*img);
    img->save("/home/iii", "JPG", -1)
wie benutze ich die save methode oder QImageWriter ???
Bei mir passiert folgednes:
GIF: das bild wird nicht gespeichert - es passiert nichts
JPG: Bogus Message 0
PNG: libpng ioerror

Verfasst: 21. Juni 2006 19:52
von Sym
Ich selber habe das noch nicht getestet, aber die Dokumentation von QImage gibt folgendes an:

Code: Alles auswählen

QImage image;
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // writes image into ba in PNG format
Vielleicht hilft das?

Verfasst: 21. Juni 2006 19:57
von Mati
Danke aber nein...
es muss auch wie oben gehen und das tut es auch aber NUR wenn ich es so mache:

Code: Alles auswählen

curr_img = "/pfad/zum/bild.png" 
//QImageWriter* img_writer = new QImageWriter("/home/","png"); 
    QImage *img = new QImage(curr_img); 
    QString str = "iii.jpg"
    img->save(str, "JPG", -1)
Also nur wenn ich den Filenamen als einzelnen QString übergebe. Ich kann aber nicht einen Pfad angeben sonst schlägts fehl. Kann mir mal bitte jemand verraten warum und wie ich jetzt das umgehen kann damit ich einen Pfad übergeben kann?

Verfasst: 21. Juni 2006 20:02
von Sym
Hmm, den Unterschied, den ich sehe ist, dass Du die Dateibezeichnung oben nicht mit angegeben hast. Kann mir aber kaum vorstellen, dass das das Problem sein sollte.

Übrigens kannst Du die -1 weglassen. ;)

Verfasst: 21. Juni 2006 20:11
von Mati
danke für die antwort,
das suffix ist egal - man kann ja auch jpg- bilder ohne endung jpg speichern z.B. der unterschied ist die Zeile mit dem QString str = "iii.jpg".

nur so funktionierts. Sobald ich in die save()-methode den string reinschreibe oder auch nur ein directory-slash mitübergebe funktionieren weder save() noch QImageWriter::write() ??? :shock: