BMP 24-bitar

MÃ¥l:
Att skapa ett grafiskt verktyg för OCR.

Delmål:
Att begripa BMP-formatet.

Analys:
BMP är normalt sett okomprimerat bildformat där man beskriver varje punkts färg i mängd rött, grönt och blått. Om varje punkt beskrivs med 24 bitar så blir det åtta bitar vardera för att beskriva röd, grön och blå.

För att det ska vara mer likt värd vanliga 10-baserade talsystem beskrivs ofta dessa värden hexadecimalt istället för binärt. åtta bitar är två hexadecimaler och varje punkt beskrivs på samma sätt som man beskriver färger i html.

Exempel på färger
Svart färg består av 0 röd, 0 grön och 0 blå och skivs alltså som 000000. En mellanmörk nyans av grå blir på samma sätt 888888. Vit blir FFFFFF. Röd blir FF0000, grön blir 00FF00 och blå blir 0000FF. Se även http://www.computerhope.com/htmcolor.htm.

Program
Jag provade först hexdump som skriver ut 16 bitar (4 hex.) i taget, men den kastar om paren så att de första två hexadecimalerna hamnar efter de sista två. (Detta är något som jag kommit i kontakt med när jag studerade raw audio för ett tag sedan. Kanske är detta man kallar little endian och big endian?) Lösningen är programmet xxd. Xxd skriver ut det i ordning och kan dessutom omvandla åt andra hållet till skillnad från hexdump.

Till saken
Jag gjorde ett schackbräde i GIMP (8x8 rutor med varannan ruta svart och varannan ruta vit). Det blev mycket tydligt hur varje ruta beskrivs av 6 hexadecimaler och teorin verkar stämma.

xxd test8.bmp
0000000: 424d f600 0000 0000 0000 3600 0000 2800 BM........6...(.
0000010: 0000 0800 0000 0800 0000 0100 1800 0000 ................
0000020: 0000 c000 0000 130b 0000 130b 0000 0000 ................
0000030: 0000 0000 0000 ffff ff00 0000 ffff ff00 ................
0000040: 0000 ffff ff00 0000 ffff ff00 0000 0000 ................
0000050: 00ff ffff 0000 00ff ffff 0000 00ff ffff ................
0000060: 0000 00ff ffff ffff ff00 0000 ffff ff00 ................
0000070: 0000 ffff ff00 0000 ffff ff00 0000 0000 ................
0000080: 00ff ffff 0000 00ff ffff 0000 00ff ffff ................
0000090: 0000 00ff ffff ffff ff00 0000 ffff ff00 ................
00000a0: 0000 ffff ff00 0000 ffff ff00 0000 0000 ................
00000b0: 00ff ffff 0000 00ff ffff 0000 00ff ffff ................
00000c0: 0000 00ff ffff ffff ff00 0000 ffff ff00 ................
00000d0: 0000 ffff ff00 0000 ffff ff00 0000 0000 ................
00000e0: 00ff ffff 0000 00ff ffff 0000 00ff ffff ................
00000f0: 0000 00ff ffff ......


Efter att ha studerat ett par andra BMP-filer ser jag följande:
Grupp 2 på rad 2 innehåller bredd eller höjd: "08xx"
Grupp 4 på rad 2 innehåller bredd eller höjd: "08xx"
Första rutan (vit längst upp tv) är på rad 4 (0000030), grupp 4 och halva grupp 5: "ffff ff".

Om jag ersätter färgernas värden med rutans nummer blir det såhär:
...
0000030: 0000 0000 0000 1111 1122 2222 3333 3344 ................
0000040: 4444 5555 5566 6666 7777 7788 8888 9999 ................
...


fortsättning följer...





ubuntu mount remote file system, droplet (your own dropbox)
(2017-05-29)
Steam will not start in Ubuntu 16.04 LTS [Solved]
(2016-05-04)
Sopcast player in Ubuntu 12.04 / 14.04 / 16.04 LTS
(2016-05-04)
Steam will run fine on Ubuntu 16.04 LTS
(2015-03-19)
Några Grafikkort för datorspel till bra pris
(2014-12-25)
Silverlight for Ubuntu 14.0 (Pipelight) - Howto install
(2014-09-15)
Screen settings from prompt, terminal, linux, Ubuntu 12.04 LTS, 14.04 beta.
(2014-04-05)
live streaming audio from ubuntu
(2014-02-23)
Steam + Ubuntu 12.04
(2014-02-15)
studier
(2013-12-06)
Ghostery: Ta bort trackers, spionprogram och reklam med Firefox, Chrome
(2013-11-23)
Ta bort trackers
(2013-11-12)
AMD: Athlon x2 vs Phenom II x4, 3.4 GHz
(2013-09-25)
Ubuntu Disable firefox fullscreen warning: You re now in fullscreen
(2013-09-18)
ubuntu NO_PUBKEY 2EBC26B60C5A2783; "Installera dessa paket utan verifiering"
(2013-08-24)
Digipass 920 i ubuntu (SEB bankid)
(2013-08-20)
Världens största svenska personregister finns inte i sverige
(2013-06-07)
[SOLVED] Disable UEFI, EFI from preinstalled Windows 8 computer
(2013-01-23)
[SOLVED] FirewallD is not running. Network Printer Detection needs. mdns, IPP, Ipp-client
(2013-01-20)
web
(2013-01-03)
Spärra internetadresser eller reklam.
(2012-11-06)
Rsync / SSH + Droppox / UbuntuOne
(2012-10-25)
Ubuntu 12.04 first boot Error: "fixing recursive fault but reboot is needed"
(2012-10-13)
Yahoo, Google or Bing
(2012-09-03)
Ubuntu + OCZ Agility 3 freeze error: "ata1: softreset failed (1st FIS failed)"
(2012-08-30)
Kirsebergssången
(2012-08-20)
Konvertera film (MPEG) till WEBM för Open Video
(2012-08-14)
Startup Manager for Ubuntu Precise 12.04
(2012-06-23)
Spela DVD i Ubuntu 12.04 LTS
(2012-05-18)
Mahalia Jackson
(2012-03-06)
Spela DVD i Ubuntu 12.04 Precise Pangoline
(2012-02-28)
Klassisk Gnome-meny istället för Unity i Ubuntu 12.04
(2012-02-09)
LAMP-howto
(2012-01-14)
How to create a portable encrypted file system on a loop file
(2012-01-14)
Ubuntu 12.04 LTS alpha 1 + Firefox 12.0 Nightly
(2012-01-08)
rtl8111
(2011-11-11)
Clipart for schools
(2011-10-13)
LibreOffice vs Openoffice
(2011-10-06)
Hur du uppdaterar Ubuntu från Firefox 3.6 till Firefox 6.0
(2011-09-02)
DVD-spelare i Ubuntu 10.04 LTS
(2011-04-08)
Fel http://se.archive.ubuntu.com/ubuntu/ lucid/universe libopenjpeg2 1.3+dfsg-4 404 Not
(2011-01-04)
Ubuntu 10.04 BUG: cups-pdf not printing, PDF printer not working
(2010-12-16)
CUPS: cupsd using 100% cpu
(2010-12-14)
Ubuntu 10.04 Bug: Nedkopplat läge / Offline mode i Firefox 3 [Howto] [Lösning] [Solved]
(2010-12-05)
Deleting A String From Firefox about:config Page
(2010-12-05)
Snabbare Firefox i Ubuntu / Swiftfox - Firefox Lite
(2010-11-12)
10 things you can do when Windows XP wont boot
(2010-10-19)
Backup med rsync
(2010-10-19)
remove compiz-fusion
(2010-10-11)
Om Google "Dont Be evil"
(2010-10-09)
Montera LVM på ett annat system
(2010-10-08)
Stänga av skärmsläckare och energisparfunktioner
(2010-09-12)
Ubuntu LTSP Server 10.04 LTS (del 3)
(2010-09-10)
Spotify genom wine
(2010-09-05)
Ubuntu LTSP Server 10.04 LTS (del 2)
(2010-09-05)
Program
(2010-09-01)
Xerox Phaser 6125, 6125N driver for Linux or Ubuntu
(2010-08-27)
Ubuntu LTSP Server 10.04 LTS (del 1)
(2010-08-27)
Mailserver
(2010-06-10)
Perl
(2010-06-02)
Ubuntu 10.04 LTS
(2010-05-19)
SLES 11 Transparent proxy
(2010-04-06)
Surfkurs för nördar / Mitt liv som webbläsare
(2010-03-26)
Reparera MBR i Ubuntu / Windows
(2010-03-23)
Autostart i ubuntu
(2010-03-19)
Johannes Ordspråk
(2010-03-09)
ddclient
(2010-02-25)
Färgkoder HTML
(2010-02-22)
SSH-tunnel till din dator
(2010-02-18)
Nätverkskort från grunden
(2010-02-13)
nörDvitamin
(2010-02-12)
Säkra upp SSH
(2010-02-02)
Automatisk inloggning i textläge.
(2010-01-31)
Skicka e-mail med bash genom en smtp-server som kräver inloggning
(2010-01-10)
LTSP server på Ubuntu 9.10
(2009-12-30)
Ubuntu icke fria paket
(2009-12-15)
Installera windows 2000/XP i Ubuntu 8.04 / 9.10
(2009-12-12)
SSD rockar
(2009-11-28)
Solid State Drive (SSD) Benchmark Performance Testing
(2009-11-18)
Nerdking filarkiv
(2009-11-18)
Regcleaner
(2009-11-15)
Podcast howto
(2009-10-20)
Att spela in ljud till mp3 med Linux
(2009-10-18)
WordPerfect Suite Trial
(2009-10-09)
Windows: Bort med Bing från Firefox
(2009-08-21)
Att använda Qemu i Windows
(2009-08-02)
Att använda Qemu i Linux
(2009-08-02)
Ubuntu 8.04 + ASUS Eee 900
(2008-08-24)
Squid
(2008-08-08)
Klippa mp3
(2008-03-16)
Aktivera bredbandstelefoni Tele2
(2008-01-12)
LTSP 4.2 - del2
(2008-01-08)
LTSP 4.2
(2008-01-06)
T-Mini - Transparent Proxy på ett nätverkskort
(2007-10-02)
GPG-nyckel
(2007-05-19)
pure-ftpd
(2007-04-16)
Samba för en skola
(2009-01-15)
Samba 3 på OpenSuse 10.3
(2008-11-06)
LTSP 5 + Ubuntu 8.04
(2008-10-13)
SSL/TLS + vsftpd
(2008-09-29)
Netris
(2008-08-01)
Torrentserver
(2008-07-20)
Transparent proxy
(2007-10-02)
Skrivardrivrutiner
(2007-10-01)
Installera suse från server med hjälp av Suse mini CD
(2007-09-30)
--- Kommandon ---
(2007-09-28)
LTSP på suse10 - fungerar hyffsat
(2007-04-17)