Image Manipulation

Alles rund um die Programmierung mit Qt
Antworten
Necropsy
Beiträge: 14
Registriert: 17. September 2012 09:10

Image Manipulation

Beitrag von Necropsy »

Hallo,

Ich wollte mich erkundigen welche QT Klasse besser zum lösen meiner kleinen Aufgabe geeignet ist.
erstmal erläutere ich was ich vor habe und wie weit ich bis jetzt bin.

Ich habe vor Mehrere Bilder so zusammen zu setzen das sie ein komplettes Bild ergeben sollen,
momentan habe ich alle Bilder die ich brauche jeweils in ein QImage gespeichert und diese in einen QVector gespeichert.
angenommen ich habe 4 Bilder diese möchte ich in diesen Schema zu einen kompletten Bild zusammen fügen:

Bild_1 | Bild_2
------- |--------
Bild_3 | Bilde_4

was für QT Klassen eignen sich dafür? QImage? QPainter?
eventuelle Beispiele und Code stücken wären sehr hilfreich.

Ich hoffe das ihr mir Helfen könnt :)

lg Necropsy
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Image Manipulation

Beitrag von franzf »

Ein Vektor ist eine eindimensionale Datenstruktur. Daraus eine zweidimensionale Struktur abzuleiten ohne zusätzliche Informationen geht schwer - du musst dir also schon merken, ob die 6 Bilder im Vector in 2x3 oder 3x2 angeordnet werden sollen; deine 4 Tiles könnten ja auch ein Panorama (1x4) darstellen.
Zum Zeichnen ist ein QPainter sicherlich nicht schlecht. Wobei auch der nicht nötig ist: Du kannst die Bilder entsprechend in ein größeres Bild packen und das dann auf ein QLabel setzen - falls das resultierende Bild nicht zu groß wird.
Necropsy
Beiträge: 14
Registriert: 17. September 2012 09:10

Re: Image Manipulation

Beitrag von Necropsy »

Also die syntax Logik für das anordnen der Bilder aus dem Vector ist schon gegeben allerdings fehlt mir nur noch die die funktionalität die Bilder wie in den gegeben Beispiel zu speichern.
Ich weiss nicht recht welche Funktion ich verwenden soll damit ich diese Bilder in ein großes ganzes speichern kann, eventuell drawImage()? oder fillRect() wobei ich dan das aktuell hinzuzufügende Bild in den Rect zeichne? schliesslich möchte ich ja nur ein "Teil" des end Bildes hinzufügen.

lg Necropsy
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Image Manipulation

Beitrag von franzf »

Du willst es speichern? Dann schreib das doch gleich.
QImage/QPixmap sind QPaintDevices -du kannst auf denen einen Painter aufmachen.
Erstell ein QImage für das finale Bild - mit finaler Breite und Höhe.
Mach einen QPainter auf dem QImage auf.
Dann kannst Tile für Tile in das neue Bild zeichnen, mit QPainter::drawImage.
Scary Hallo

Re: Image Manipulation

Beitrag von Scary Hallo »

Ich kann die openCV-Library empfehlen. Da gibt es Funktionen in Hülle und Fülle. Die C++-Datentypen sind für Bildbearbeitung optimiert. Du findest im Netz Beispiele für alles mögliche. Auch öffnen und speichern von Bildern. Es ist nicht Qt arbeitet aber sehr gut mit Qt zusammen. OpenCV gibt es für Windows, Linux und Android.

http://opencv.org/
Necropsy
Beiträge: 14
Registriert: 17. September 2012 09:10

Re: Image Manipulation

Beitrag von Necropsy »

Danke franzf und Scary Hallo für eure Hilfe :D ich denke ich werde mir opencv mal ansehen aber für den moment erstmal den Vorschlag von franzf verwenden.

lg Necropsy
Antworten