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. |