Bmps Pixelweise verarbeiten



  • Hallo,

    ich brauche Hilfe bei einem Problem, mit dem ich nicht weiter komme.
    Ich möchte eine Möglichkeit haben .bmps mit C++ pixelweise verarbeiten zu
    können.

    Ich lade die Bilder über einen OpenFileDialog, ich habe schon ein
    paar verschiedene Ansätz probiert um an die Pixeldaten zu kommen, aber ich komme nicht zum Ziel.

    Wie kann ich an die Pixeldaten der Bmps kommen?
    Kann ich die Dateien einfach als String nehmen und auswerten?
    Wenn ja, wie bekomme ich da x,y werte heraus, da die Werte ja alle in einer Reihe kommen.
    Oder gibt es eine bessere Möglichkeit die C++ bietet?
    Ich weiß, dass Java zB direkt mit Bildern umgehen kann...aber bei C++
    hab ich ähnliches noch nicht gefunden.

    Ich würde mich sehr über Tipps freuen!!

    Viele Grüße!



  • ASNI-C++ kennt keine Bitmaps... falsches Forum!



  • Hi!
    Es gibt diverse freie Bibliotheken für Bitmap-Manipulationen.
    Ansonsten müsstest du dich mit dem BMP Format beschäftigen, das relativ einfach ist. Das kannst du sehr wohl mit C++, ohne extra Bibliotheken realisieren, wenn es dir der Aufwand wert ist.



  • funkycat13 schrieb:

    Ich lade die Bilder über einen OpenFileDialog, ich habe schon ein paar verschiedene Ansätz probiert um an die Pixeldaten zu kommen, aber ich komme nicht zum Ziel.

    Welche? Was hat nicht funktioniert?

    funkycat13 schrieb:

    Wie kann ich an die Pixeldaten der Bmps kommen?

    Wo liegt das Problem? Naja, ich kann es ja mal versuchen: Zum Farbwertindex kommst du durch "bfOffBits". Ab dem 12. Byte (1 Offset = 1 Byte) bis zum 16. Byte des Dateianfangs ist das Offset zum Farbwertindex zu finden. Da springste dann eben hin und liest die die Indices ein. Diese Indices brauchst du dann wieder um an die eigentlichen Farbwertdaten der Bitmap zu kommen. Und achja: Kompression beachten!

    funkycat13 schrieb:

    Kann ich die Dateien einfach als String nehmen und auswerten?

    Wie? Du kannst sie nach dem Parsing in einen std::string umwandeln da sich std::string nicht mit Binärendaten verträgt.

    funkycat13 schrieb:

    Wenn ja, wie bekomme ich da x,y werte heraus, da die Werte ja alle in einer Reihe kommen.

    Habe ich bereits gesagt.



  • hier gibts genaue Infos zu den einzelnen Offsets und deren Bedeutung


Anmelden zum Antworten