Bilder speichern

Alles rund um die Programmierung mit Qt
Antworten
Mati
Beiträge: 66
Registriert: 4. Januar 2006 00:11

Bilder speichern

Beitrag 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
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag 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?
Mati
Beiträge: 66
Registriert: 4. Januar 2006 00:11

Beitrag 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?
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag 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. ;)
Mati
Beiträge: 66
Registriert: 4. Januar 2006 00:11

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