Seite 1 von 1

[gelöst] QImage - Konvertierung immer möglich?

Verfasst: 3. September 2008 16:02
von gelignite
Hallo,

ich habe zwei Fragen, aber so viel Platz war nicht im Topic.

1.
Laut Doku ist die Rückgabe der Methode QImage::convertToFormat() vom Typ QImage. Ich lese nichts davon, dass diese Funktion ggf. 0 oder false (oder weiß der Kuckuck was) zurückliefert, wenn bei der Konvertierung etwas schief gehen sollte. Daher nehme ich an, dass die Konvertierung immer funktioniert und es immer ein QImage zurück gibt. Liege ich damit richtig?

2.
Ich kenne mich - was Bildformate betrifft - nicht sonderlich gut aus. Meine Anwendung soll die drei folgenden Bildformate unterstützen und alle anderen Formate entsprechend konvertieren. Unterstützt werden sollen:
- QImage::Format_Indexed8
- QImage::Format_RGB32
- QImage::Format_ARGB32

Andere Formate sollen konvertiert werden (oder abgewiesen, falls (siehe 1.) die Konvertierung fehlschlägt). Nun frage ich mich, nach welchen Kriterien ich entscheiden soll, in welches Zielformat ein Bild, welches nicht den unterstützten Formaten entspricht, umgewandelt wird. Kann man die 15 in der Doku aufgeführten Formate grundsätzlich immer in die von mir bevorzugten Formate konvertieren?

Gruß,
gelignite

Verfasst: 3. September 2008 18:18
von Christian81
Zu erstens - wenn die Konvertierung fehlschlägt kommt ein leeres QImage zurück
Und zweitens - warum sollte man es nicht konvertieren können?

Verfasst: 3. September 2008 19:49
von gelignite
Hallo,
Christian81 hat geschrieben:Und zweitens - warum sollte man es nicht konvertieren können?
Das wäre eben meine Frage gewesen: Gibt es etwas, das gegen eine Konvertierung von Format A nach Format B gibt? Wie erwähnt, sind Bildformate (insbesondere deren Aufbau und Eigenschaften) nicht mein Fachgebiet. Aufgrund deiner Antwort nehme ich an, dass nichts dagegen spricht. Dann wäre das ja geklärt.

Vielen Dank. Gruß,
gelignite

Verfasst: 3. September 2008 20:08
von Christian81
Naja - im Grunde spricht nichts dagegen. Ein Qualitätsverlust wird es aber wohl immer geben.

Verfasst: 3. September 2008 20:31
von gelignite
Keine Frage, wenn man versucht 32 bit in 8 zu stecken.

Das eigentliche Problem ist, dass es scheinbar keine von Haus aus gelieferte Methode zur Erstellung von Graustufenbildern gibt. Daher habe ich mir über die Suche (hier im Forum und via anderer bekannter Suchmaschinen) Informationen und Wege beschafft und daraus eine Funktion erstellt. Diese hatte nur zunächst nicht so funktioniert wie gedacht, weshalb ich auf die Konvertierung geschlossen hatte. Der Fehler lag aber an anderer Stelle, wie mir eben aufgefallen ist. Klappt jetzt jedenfalls.

Da die Anwendung nur für Grundlagenfunktionen der Bildverarbeitung (Threshold, Kantendetektion und dergleichen) benötigt wird, stellen diese Qualitätsverluste kein großartiges Problem dar. Vor allem dann nicht, wenn eh nur noch schwarze und weiße Pixel übrig sind.

Gruß,
gelignite