Was ist bei diesem BMP-Bild falsch?
Das soll ein einzelner grüner Pixel sein, es ist aber ein roter.
Es ist nur ein sehr kleines Bild also vielleicht kann ja mal jemand darübergucken, ob irgendwas falsch ist, was ich übersehen habe (:
Die Dokumentation für das Format ist hier (die deutsche Version ist leider unvollständig): https://en.wikipedia.org/wiki/BMP_file_format
Hier die Aufteilung wie sie gedacht war:
0x00 bis 0x01 Signatur (BM) // Start Datei Header
0x02 bis 0x05 Dateigröße (38 Bytes)
0x06 bis 0x07 Reserviert1 (0)
0x08 bis 0x09 Reserviert2 (0)
0x0A bis 0x0D Start Offset der Bilddaten // Ende Datei Header
0x0E bis 0x11 Header-Größe (12 Bytes) // Start Bitmap Core Header
0x12 bis 0x13 Bild Breite (1 Pixel)
0x14 bis 0x15 Bild Höhe (1 Pixel)
0x16 bis 0x17 "Color Planes" (1)
0x18 bis 0x19 Bits Per Pixel (1) // Ende Bitmap Core Header
0x1A bis 0x1D Palette Farbe 1 (rot) // Start Farbpalette
0x1E bis 0x21 Palette Farbe 2 (grün) // Ende Farbpalette
0x22 bis 0x25 Pixel Daten (nur Einsen also Farbe 2/grün)
Bei den Pixeldaten habe ich einfach 4 Bytes Einsen geschrieben (0xFF 0xFF 0xFF 0xFF), dass die richtige auf jeden fall dabei ist (müsste ja ein Bit sein und 31 Bit Padding dass es auf ein vielfaches von 4 Bytes kommt aber Padding ist ja egal ob es 0 oder 1 ist).
Also wäre schön, wenn jemand mir sagen könnte, warum es ein roter und kein grüner Pixel ist (:
1 Antwort
![](https://images.gutefrage.net/media/user/franklin35/1524666083632_nmmslarge__13_13_287_287_5d3f35f0cac0d5d6fda9b7043a17f51f.png?v=1524666084000)
Wenn es rot statt grün ist, dann hast du die Einsen vermutlich an die "rote Position" geschrieben, sprich 111100000000 statt 000011110000.
Wenn du es empirisch testen willst, leg doch einfach mal im Grafikprogramm deines Vertrauens ein 1x1 BMP an und fülle es mit grüner Farbe. Dann kannst du das Ergebnis mit deinem Produkt vergleichen.
![](https://images.gutefrage.net/media/user/franklin35/1524666083632_nmmslarge__13_13_287_287_5d3f35f0cac0d5d6fda9b7043a17f51f.png?v=1524666084000)
Ich bin mir nicht sicher, ob du den BITMAPINFOHEADER bei "modernen" BMPs noch weglassen kannst. Es kann sein, dass BMPs ohne den BITMAPINFOHEADER einfach nicht mehr unterstützt werden.
Bei MS Paint kann man bei die Farben der Palette für Monochome Bilder nicht festlegen, aber wenn ich sie im Hex-Editor so anpasse, wie sie in dem generierten Bild aussieht, funktioniert es wie es soll ._.
Der einzige Unterschied ist, dass der Bitmap Info Header und nicht so wie bei mir der Bitmap Core Header benutzt wurde. Ich hätte halt gerne den kleineren genommen, weil für meinen Fall praktisch alle zusätzlichen Infos unnötig sind.
Scheint aber mittlerweile zu alt zu sein oder ich weiß ja nicht, warum der nicht mehr erkannt wird (hat nichtmal in Gimp richtig funktioniert).