
|
IMG fileformaat Onbekend, 00-00-00
IMG-FILEFORMAAT
HEADER
=============================================================================
Byte Lengte Beschrijving
-----------------------------------------------------------------------------
0 2 versienummer (altijd 1)
2 2 Lengte van de header in woorden (1 woord=2 bytes).
normaal staat hier 8 maar ventura gebruikt een 18 bytes header,
dus staat er 9.
4 2 Aantal planes. Dit is 1 voor monochrome plaatjes en 2 voor
16-kleuren plaatjes, alhoewel het aantal planes dan 4 is.
6 2 patroonlengte, gebruikt voor compressie. normaal de waarde 2
maar mag varieeren tussen 1 en 8.
8 2 De breedte van een pixel in microns (duizendem van mm).
Meestal niet gebruikt omdat je pixels toch niet kleiner kunt
maken. Een veel gebruikte waarde is 85 micron.
10 2 De hoogte van een pixel in microns (zie byte 8)
12 2 De breedte van het plaatje in pixels.
14 2 De hoogte van het plaatje in pixels.
=============================================================================
DATA:
Vanaf byte 16 tot het einde van het bestand is dan de eigenlijke data.
PLANES:
Gaat het om een kleuren plaatje dan is dat weggeschreven als vier maal een
monochroom plaatje; ieder plane wordt apart weggeschreven.
SOLID RUNS:
IMG-files werken op bit-niveau en normaal is alle data zogenaamd "Run Length
Encoded" (RLE). Je leest steeds een byte van het bestand. Als een byte in het
hoogste bit een 1 heeft staan, dan weet je dat er een aantal 1's komen.
Hoeveel er moeten komen, staat in de resterende 7 bits. Begint een byte met
een 0, dan geven de resterende 7 bits aan hoeveel nullen je naar je scherm
moet schrijven. We noemen dit "solid runs".
PATTERN RUNS:
Er kunnen echter ook zogenaamde "pattern runs" voorkomen. In dat geval wordt
aangegeven hoe vaak een bepaald patroon voorkomt. Kom je een byte tegen dat
00 (hex) is, dan betekent dat de start van een pattern run. De erop volgende
byte bepaalt hoe vaak het patroon zich herhaalt. De bytes daarna bepalen het
patroon. De lengte van het patroon staat in de header. Daardoor weet je
hoeveel bytes je in moet lezen.
RAW DATA:
Tenslotte kan ook een bepaalde combinatie van bits direct in het bestand
worden weergegeven. Dat is dus "raw data" en die begint met 80 (hex). Het
byte daarna beschrijft hoeveel databytes er volgen als raw data, dat op zijn
beurt weer gevolgd wordt door dat aantal bytes met data, die je dus
letterlijk moet overnemen.
|