Alles rund um die Programmierung mit Qt
tYREL
Beiträge: 43 Registriert: 8. Februar 2009 10:11
Beitrag
von tYREL » 21. Mai 2009 22:31
Hallo zusammen
,
ich bin gerade auf ein größeres Problem gestoßen. Über pixmap->save
speichere ich ein Bild ab.
Code: Alles auswählen
pixmap -> save(QString::fromStdString(lMovieDatabase.moviePNG), "PNG");
Problem, das PNG wird in einem andren Programm wieder eingelesen, welches aber leider nur indizierte PNGs darstellen kann. Kann ich Qt irgendwie dazubewegen, das Bild entsprechend zu speichern
.
Default ist sowie ich das sehe RGB.
Danke+Grüße
tYREL
Zuletzt geändert von
tYREL am 22. Mai 2009 19:55, insgesamt 1-mal geändert.
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 21. Mai 2009 22:42
Ich würde mal versuchen ein passendes QImage zu speichern.
tYREL
Beiträge: 43 Registriert: 8. Februar 2009 10:11
Beitrag
von tYREL » 22. Mai 2009 08:27
Danke. Hab mir mal die Klasse angesehen. Scheint die Funktionen zu haben welche ich brauche. Könnte also klappen
.
Danke für den Tipp.
tYREL
Beiträge: 43 Registriert: 8. Februar 2009 10:11
Beitrag
von tYREL » 22. Mai 2009 13:49
Brauche nun doch etwas hilfe. Bekomme es nicht hin.
Ich möchte ein JPG Bild laden und als 256 Farben PNG wieder abspeichern.
Nach dem Tipp von upsala habe ich folgendes gebastelt.
Code: Alles auswählen
int QtTab::makePNG()
{
QImage *pixmap;
pixmap = new QImage ("bild1.jpg");
if(pixmap->isNull())
return -1;
//pixmap->setNumColors ( 256 );
pixmap->convertToFormat ( QImage::Format_Indexed8, Qt::AutoColor );
if (pixmap -> save("bild2.png", "PNG") == 0)
{
qDebug("Fehler beim Speichern des PNG Bildes.");
}
return 0;
}
Es wird aber immer noch ein 16,8 Mio Farben Bild gespeichert. Was muß ich anders machen?
franzf
Beiträge: 3114 Registriert: 31. Mai 2006 11:15
Beitrag
von franzf » 22. Mai 2009 14:25
Weil QImage::convertToFormat() nicht das Objekt verändert sondern eine Kopie zurückliefert!
tYREL
Beiträge: 43 Registriert: 8. Februar 2009 10:11
Beitrag
von tYREL » 22. Mai 2009 19:55
Hallo,
stimmt, hab ich net ordenlich genug gelesen
Hier der funktionierende Code um aus einem JPG Bild ein 256 Farben PNG Bildchen zu machen.
Code: Alles auswählen
QImage jpegPic( QString::fromStdString(jpegFileName) );
QImage pngPic = jpegPic.convertToFormat(QImage::Format_Indexed8);
if (pngPic.save(QString::fromStdString(pngFileName), "PNG") == 0)
{
qDebug("Fehler beim Speichern des PNG Bildes.");
}
Grüße
tYREL