Assembler - Bildbetrachter

Akilein

Mitglied
hi Leute!
ich lese ein Buchlein und ich bin wieder auf etwas gestoßen, womit ich nichts anfangen kann ...

also da steht: "Sobald eine Scanline kein ganzzahliges Vielfaches von 4(32-Bit!) ist, wird sie einfach durch eine oder bis zu drei Nullen dazu gemacht!"

Kann mir darunter nicht viel vorstellen! warum sollten da irgendwelche Nullen hinzugefügt werden, heißt das eigentlich, dass noch zusätzliche Bildpunkte (schwarze) in die Zeile dazugetan werden oder wie? die Bild-Breite steht doch im Header, da kann doch das Progi gucken, wann es in einer Zeile Schluss mit den Pixel malen ist ... und was haben die Zeilen (=Scnallinien) mit 32-Bit zu tun?

bütte bütte helft mir bisi auf die Sprünge!
Danke!!
 
Die Scanlines (Bildzeilen) müssen laut Formatspezifikation immer an einer 32-Bit-Grenze beginnen. Das beschleunigt das Auslesen aus dem Speicher und somit auch den Bildaufbau.

Da eine Scanline aber eben nicht unbedingt ein Vielfaches von vier Bytes (= 32 Bits) als Länge besitzen muss, werden zusätzliche, eigentlich überflüssige und beim Auslesen auch ignorierte Nullbytes angehängt („zero-padding“), damit die nächste Scanline wieder an einer 32-Bit-Grenze anfängt. Theoretisch müssten es nicht mal Nullbytes sein. Die Bytes könnten irgendwelche Werte enthalten, da sie ja sowieso ignoriert werden. Wichtig ist eben nur, dass jede Scanline an einer solchen Grenze liegt.

Siehe auch: http://www.mip.sdu.dk/ipl98/how_to_use_ipl98/tutorial/node8.html#fig:imagedata
 

Neue Beiträge

Zurück