Section courante

A propos

Section administrative du site

Fiche technique
Type Bitmap/Vectorielle
Nombre de couleurs 1 à 8 bits
Auteur WordPerfect (Corel)

Introduction

L'extension de fichier «.WPG», nommé WordPerfect Graphics Format, est un format de fichier d'image Bitmap qu'utilisait l'application WordPerfect. Durant les années 1980, le traitement WordPerfect était une application de traitement de texte populaire, à juste titre célèbre pour ses nombreuses capacités. C'est l'un de ces produits ne semblant susciter que des opinions bien arrêtées - les gens ne juraient que par lui à cette époque. Le produit prend en charge un format graphique indigène connu sous le nom de format «WordPerfect Graphics Format». Les fichiers utilisant le format utilisent normalement l'extension «.WPG». Malgré la renommée de WordPerfect, le format WPG n'a pas atteint l'acceptation généralisée de formats Bitmap plus simples tels que PCX. Cette situation est probablement dû à la complexité relative du format et à la perception qu'ont les gens qu'il s'agit principalement d'un format vectoriel. Bien que le format WPG soit un format vectoriel à usage général, il prend également en charge les images graphiques Bitmap. Une convention du format est qu'un fichier WPG peut contenir des graphiques vectoriels ou des graphiques Bitmap, mais pas les deux. Pour cette raison, le format peut être considéré comme possédant deux variantes. Il est toutefois important de noter que la distinction Bitmap et vecteur n'affecte pas l'interprétation des structures de données d'un fichier WPG, mais indique plutôt quel sous-ensemble de ces structures se trouvera dans un fichier donné.

Structure du fichier

La structure globale d'un fichier WPG se compose d'un bref entête de fichier suivi d'un certain nombre de paires balise-objet. La documentation du format WPG officielle de WordPerfect Corporation utilise la terminologique type d'enregistrement (Record Type) et enregistrement (Record) au lieu de la balise et d'objet. Une balise est une structure composée de deux champs, un identifiant d'objet et une taille d'objet. Le champ d'identificateur est toujours une valeur d'octet, mais le champ de taille peut être une valeur intégrale d'octet, de mot ou de double mot. Bien que cela complique le processus de lecture et de déchiffrement d'une balise, une fois que le processus a été compris et encapsulé de manière appropriée dans le code, il peut alors être pratiquement ignoré. Chaque balise identifie l'objet le suivant. Il existe essentiellement trois types d'objets: (1) les objets graphiques tels que les lignes, les polygones et les bitmaps; (2) des spécificateurs d'attributs, indiquant des éléments tels que la couleur de la ligne et le motif de remplissage; et (3) les constructions de contrôle, indiquant généralement ce qui se passe. Deux constructions de contrôle trouvées dans chaque fichier WPG sont «Begin WPG» et «End WPG». Ceux-ci peuvent être utilisés par une application, par exemple, pour déterminer quand une définition d'image est terminée. Le membre de taille d'une balise spécifie, en octets, la longueur de l'objet la suivant. L'utilisation de balises de type et de taille rend le processus de numérisation d'un fichier WPG relativement simple. Au fur et à mesure que chaque balise est rencontrée, son membre identifiant est utilisé pour déterminer ce qu'est l'objet et donc s'il doit ou non être traité. Le membre de taille peut ensuite être utilisé pour allouer un tampon approprié, par exemple, ou pour contrôler la distance à parcourir pour rechercher la prochaine balise. Lorsqu'une balise "End WPG" est rencontrée, une application sait que l'analyse est terminée. La séquence de balises pour un fichier Bitmap de WPG se présente généralement comme suit :

Identificateur de balise Nom Description
15 Begin WPG Cette identificateur de balise permet d'indiquer le commencement des données du WPG.
14 Color Map Cette identificateur de balise permet de définir la cartographie des couleurs.
11 Bitmap Cette identificateur de balise permet de définir le Bitmap.
16 End WPG Cette identificateur de balise permet d'indiquer la fin des données du WPG.

Les nombres indiquent les valeurs d'identificateur de balise associées à l'objet spécifié. Une palette de couleurs définit un bloc de valeurs RVB dans la palette actuelle. Le format WPG spécifie une palette par défaut, donc à proprement parler, l'inclusion d'une cartographie de couleurs est facultative. Cependant, la plupart des spécimens de format contiennent une cartographie en couleur. Le Bitmap de WPG est composé d'un bref entête Bitmap suivi des données Bitmap. Le Bitmap est codé à l'aide d'un schéma de compression RLE. Les Bitmaps de 1, 4 et 8 bits par pixel sont pris en charge, et un Bitmap de 4 bpp est structuré comme un seul plan avec 2 pixels compressés dans chaque octet.

Structure d'entête du fichier

L'entête d'un fichier WPG est défini par la structure WPGHEADER. La structure est toujours le premier élément d'un fichier WPG. Voici la structure d'entête du fichier WPG :

Déplacement Taille Nom Description
0 4 octets fileid Ce champ contient un identificateur de signature de 4 octets composé des valeurs FFh, «W», «P», «C». Ces valeurs valide le fichier comme étant un fichier WordPerfect, mais le champ de type de fichier (filetype) doit également être vérifié pour valider un fichier WPG.
4 4 octets dataofs Ce champ contient un entier de 32 bits indiquant le déplacement entre le début du fichier et le début des données du fichier. Pour un fichier WPG, il s'agit généralement de 16, ce qui correspond à la taille d'un WPGHEADER.
8 1 octet prodtype Ce champ permet d'indiquer l'identificateur de type du produit. La valeur 1 est normalement utilisé.
9 1 octet filetype Ce champ permet d'indiquer le type de fichier. La valeur 22 indique un fichier WPG.
10 1 octet majver Ce champ permet d'indiquer la version majeur du WPG.
11 1 octet minver Ce champ permet d'indiquer la version mineur du WPG.
12 2 octets enckey Ce champ permet d'indiquer la clef de chiffrement. La valeur 0 est normalement utilisé, indique qu'il n'y a pas de chiffrement.
14 2 octets resv Ce champ est réservé et contient une valeur 0.

Liste des identificateurs de balise

Voici la liste des identificateurs de balise reconnu par le format de fichier WordPerfect Graphics Format :

Identificateur de balise Nom Description
0 Undefined Cette identificateur de balise permet d'indiquer une balise indéfini.
1 Fill Attribute Cette identificateur de balise permet d'indiquer un attribut de remplissage.
2 Line Attribute Cette identificateur de balise permet d'indiquer un attribut de ligne.
3 Marker Attribute Cette identificateur de balise permet d'indiquer un attribut de marquage.
4 Poly Marker Cette identificateur de balise permet d'indiquer un marqueur de polygone.
5 Line Cette identificateur de balise permet d'indiquer une ligne.
6 Poly Line Cette identificateur de balise permet d'indiquer une multiple ligne.
7 Rectangle Cette identificateur de balise permet d'indiquer un rectangle.
8 Polygon Cette identificateur de balise permet d'indiquer un polygone.
9 Ellipse Cette identificateur de balise permet d'indiquer une ellipse.
10 Curve Cette identificateur de balise permet d'indiquer une courbe.
11 Bitmap Cette identificateur de balise permet de définir le Bitmap.
12 Text Cette identificateur de balise permet d'indiquer du texte.
13 Text Cette identificateur de balise permet d'indiquer un attribut de texte.
14 Color Map Cette identificateur de balise permet de définir la cartographie des couleurs.
15 Begin WPG Cette identificateur de balise permet d'indiquer le commencement des données du WPG.
16 End WPG Cette identificateur de balise permet d'indiquer la fin des données du WPG.
17 PostScript Data Cette identificateur de balise permet d'indiquer des données de PostScript.
18 Output attribute Cette identificateur de balise permet d'indiquer un attribut de sortie.

Objet de données du Begin WPG

L'objet «Begin WPG» est toujours le premier objet de données d'un fichier WPG. Sa valeur d'identificateur de balise est 15 et la taille de balise est 6. Les descriptions de ses champs sont les suivants :

Déplacement Taille Nom Description
0 1 octet version Ce champ contient le numéro de version, doit avoir la valeur 1.
1 1 octet flags Ce champ contient la valeur des drapeaux. Doit avoir la valeur 0
2 2 octets imwidth Ce champ contient d'indiquer la largeur de l'espace d'image dans un wpu (wordperfect units). Un wpu est 1/1200 de pouces.
4 2 octets imheight Ce champ contient d'indiquer la hauteur de l'espace d'image dans un wpu (wordperfect units). Un wpu est 1/1200 de pouces.

Lorsqu'un fichier WPG contient uniquement une image Bitmap et une cartographie de couleurs, les membres de largeur et de hauteur de cette structure peuvent être ignorés. Les dimensions du Bitmap sont plutôt obtenues à partir de l'entête du Bitmap.

Objet de données d'un entête Bitmap

Un objet Bitmap a un identificateur de balise 11 et la taille de la balise varie en fonction de la taille du Bitmap. La taille de la balise est la somme de la taille de l'entête Bitmap et de la taille du bitmap codé. Les descriptions de ses champs sont les suivants :

Déplacement Taille Nom Description
0 2 octets bmwidth Ce champ contient la largeur du Bitmap en pixels.
2 2 octets bmheight Ce champ contient la hauteur du Bitmap en pixels.
4 2 octets bmdepth Ce champ contient le nombre de bits par pixel. Les valeurs possibles sont 1, 2, 4 ou 8.
6 2 octets bmxres Ce champ contient la résolution horizontale d'un Bitmap en pixels par pouce. La valeur typique pour image en base VGA est 75.
8 2 octets bmyres Ce champ contient la résolution verticale d'un Bitmap en pixels par pouce. La valeur typique pour image en base VGA est 75.

Voir également

Langage de programmation - Traitement d'image - Accueil

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