mikrocontroller.net

Forum: PC-Programmierung Bitmap Daten


Autor: Markus Red_corner04 (markus-red_corner04)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich möchte ein BMP- File mit Hilfe von C/C++ binär einlesen.
Anschließend möchte ich das BMP- File in seine Bestandteile zerlegen
(Header, Info und die reinen Bilddaten), so dass ich zum Schluss
Zugriff auf die einzelnen Pixel habe.

Wer hat sowas schonmal gemacht und kann mir helfen ?

Danke...

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe so ein programm das genau das macht .. aber quellcode habe ich
nicht !! bmp -> *.h

Gruß, Thomas

Autor: Markus Red_corner04 (markus-red_corner04)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas

leider kann ich jetzt mit deiner Antwort nicht so viel anfangen. was
meinst denn mit bmp ->*.h ???

Hast du nun ein Programm oder hast du keines ?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es hört sich so als würdest du so etwas gerne selbst programmieren, dann
kann ich nciht weiterhelfen.
Willst du ein programm, das das kann was du beschrieben hast ..nämlich
aus BMP eine header Datei machen, in der alle Pixel aufgelistet sind
kann ich dir helfen. allerdings geht es nur für BMP mit <= 240x160, da
das Prog zur Gameboy Programmierung dient !

Autor: Markus Red_corner04 (markus-red_corner04)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas

Genau so ein Programm würde mir schon reichen. Ob es jetzt nur für
Größen bis zu 240x160 ist, spielt vorerst mal keine Rolle.

Wenn du willst kannst du mir das Programm ja per email schicken:

red_corner04@yahoo.de

Vielen Dank soweit schonmal !

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist verschickt, bei fragen ..frag nur ;)

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

wo liegt den genau das Problem? Du ermittelst die Größe der Datei,
allokierst ausreichend Speicher und ließt die Datei ein. Anschließend
ließt du die Header-Daten ein und weißt wie die Pixeldaten aufgebaut
sind. Wenn du spezielle Probleme hast kann ich dir gerne helfen. Hab
erst gestern ein C++ Klasse geschrieben die eben jenes macht (nicht zur
Veröffentlichung gedacht)

Matthias

Autor: Markus Red_corner04 (markus-red_corner04)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias

so das große Problem sollte das schon nicht werden, das ist mir auch
klar. paar fragen hätte ich noch: ich hätte es halt so gemacht:
das bild binär in ein array (frage datentyp: mein vorschlag: unsigned
char ?)  mit irgendwelchen file-operationen (fread, fseek)einlesen.
Anschließend lese ich den Header aus und weiß somit den Offset der
reinen Bilddaten. Die reinen Bildddaten schreib ich mir eben dann in
ein neues Array. Das müsste doch von der Idee her klappen, oder?

Markus

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ja. Im Prinzip genau so.

Matthias

Autor: Hartmut Gröger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Denk dran ,daß die Bitmapdaten nicht in der Reihenfolge in der Datei
stehen wie sie angezeigt werden. Unterste Pixelzeile szteht am Anfang.

MfG HG

Autor: Markus Red_corner04 (markus-red_corner04)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe jetzt mein eigenes kleines Programmchen für die Daten. Hab nur
noch eine Frage, ob es auch so richtig ist. Für die Bilddaten verwende
ich ein unsigned char- Array. Kann es sein, dass die Bilddaten fast
immer 255 sind, also im ASCII- Format jetzt? Kann ich die mir irgendwie
auch als reinen Bitstrom ansehen ??

Danke...

Autor: Thomas Stütz (tstuetz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zur Beantwortung deiner Frage(n) müßten wir wissen was das für ein Bild
ist.

Bei Annahme eines Schwarz/Weiß-Bildes (1Bit) ist das Bild faßt komplett
Schwarz. 255=11111111b

unsigned char ist schon OK.

Gruss

Autor: Armin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.