Section courante

A propos

Section administrative du site

Fiche technique
Type Bitmap
Nombre de couleurs 1 bit
Taille de l'image 576x720 pixels
Méthode compression PackBits
Date de conception 1983
Auteur Bill Atkinson (Apple)

Introduction

L'extension de fichier «.MAC», «.PNTG» et «.PIC» contient le format de fichier MacPaint, lequel est le format original proposé pour les applications Apple Macintosh du même nom, comme le logiciel MacPaint. La plus grande distinction du format MacPaint est sa simplicité. En effet, ce n'est guère plus qu'un vidage d'écran compressé d'une seule application, MacPaint, pour un seul système, le Macintosh. Dans les années 1980, il existait de nombreux fichiers MacPaint sur les systèmes BBS du monde entier, et de ce point de vue, il est utile de pouvoir lire et écrire le format. Mais Le véritable héritage du format MacPaint est probablement son schéma de compression, connu sous le nom de PackBits. Ce n'est pas seulement le premier schéma de compression RLE à avoir été largement utilisé, il a également été adopté comme norme pour le format TIFF.

Structure du fichier

Un fichier MacPaint contient une seule image Bitmap de taille fixe faisant 576 pixels de large par 720 pixels de haut par 1 bit de profondeur. Les dimensions de l'image étant fixes, il n'est pas nécessaire d'entreposer ces numéros dans le fichier lui-même. Les fichiers MacPaint se remarque donc d'un entête au sens traditionnel. Ce qu'on retrouve dans l'entête est un bloc de 512 octets au début du fichier contenant un numéro de version de 4 octets, un ensemble de 38 modèles de remplissage de 8 bits par 8 bits et 204 octets de remplissage. Aucune information n'est nécessaire pour décoder un fichier MacPaint, elle peut donc être ignoré. Après l'entête de 512 octets se trouve le Bitmap réel, étant codé par une compression PackBits. Chaque ligne de balayage de 576 pixels, ou 72 octets, est codée séparément. Les données codées ne s'étendent pas sur les lignes de balayage. Pour décoder le Bitmap complet, un programme appelle normalement une fonction de ligne de décodage de balayage de ligne 720 fois, en lui passant un tampon de 72 octets à remplir. Le système de fichiers du Mac est très différent de celui du système d'exploitation DOS, ce qui peut avoir un impact sur la disposition physique et le contenu d'un fichier MacPaint ayant été transféré sur un IBM PC. Dans le système de fichiers Mac, par exemple, les fichiers contiennent deux fourches ou composantes; l'un est la fourche des données et l'autre est la fourche des ressources. Les fichiers MacPaint de la version 1.0 ne possèdent qu'une fourche de données. La version 2.0 du format ajoute quelques informations sur les ressources mineures qui, encore une fois, ne sont pas nécessaires pour décoder le fichier et peuvent être ignorées. La plupart des logiciels ignorent la fourche de ressources dans tous les cas. Le problème est qu'une fois transféré sur le PC, un fichier MacPaint peut perdre suffisamment d'informations spécifiques au Mac pour ne pas pouvoir être ensuite retransféré sur le Mac sous le même nom. Les noms de fichiers sur Mac, par exemple, peuvent contenir jusqu'à 63 caractères, tandis que les noms de fichiers DOS sont limités à 8 caractères. Les fichiers Mac possèdent également des attributs de type de fichier et de créateur de fichier n'ayant aucun équivalent sur le PC. Certains logiciels tentent de conserver ces informations afin que le fichier puisse être retransféré sur le Mac, si nécessaire. Ils le font normalement en préfixant le fichier avec un entête externe incluant ces informations. Un entête non officiel largement utilisé à cet effet est connu sous le nom d'entête MacBinary. L'entête MacBinary a une longueur de 128 octets. Lorsqu'il est présent, il se produit au tout début du fichier, avant l'entête de 512 octets du fichier de Bitmap. Ainsi, si un fichier possède l'entête, alors son Bitmap commence au déplacement 640 d'octets calculé à partir du début du fichier; s'il manque l'entête, alors le Bitmap commence au déplacement 512 d'octets.

Structure d'entête du fichier

Voici la structure d'entête du fichier MacPaint :

Déplacement Taille Description
0 4 octets Ce champ contient le numéro de version.
4 304 octets Ce champ contient les palettes.
308 204 octets Ce champ n'est pas utilisé.

Structure du Bitmap

Après l'entête se trouvent 720 lignes de données compressées formant le Bitmap de 576 pixels de large par 720 pixels de haut. Sans compression, ce Bitmap occuperait 51 840 octets et mâche l'espace disque assez rapidement; les documents MacPaint typiques se compressent à environ 10 Ko en utilisant la compression PackBits pour compresser des exécutions d'octets égaux dans chaque ligne de numérisation. La partie Bitmap d'un document MacPaint est simplement la sortie de PackBits appelée 720 fois, avec 72 octets d'entrée à chaque fois. Si nous incluons 512 octets supplémentaires pour les informations d'entête de fichier à la taille d'un Bitmap non compressé (51 840 octets), le nombre total d'octets serait de 52 352. Si nous prenons en compte les 720 octets potentiels supplémentaires (un pour chaque ligne) par rapport au total précédent, la taille maximale d'un fichier MacPaint devient 53 072 octets.

Exemple

Voici un exemple de la structure d'entête du fichier MacPaint en langage de programmation Pascal :

  1. Type 
  2.  Byte=0..255;
  3.  Pattern=Array[0..7]of Byte;
  4.  SignedByte=-128..127;
  5.  
  6.  MacPaintHeader=Record
  7.   Version: LongInt;
  8.   PatArray: Array[1..38] of Pattern;
  9.   Future: Packed Array[1..204] of SignedByte;
  10.  End;

Voir également

Logiciel - MacPaint - Présentation
Langage de programmation - Traitement d'image - Accueil

Dernière mise à jour : Samedi, le 11 avril 2020