Format Targa de Truevision
Cette section présente le format d'images Targa de Truevision utilisé par Up ! Targa.
Une image au format Targa est encodée avec la convention d'Intel i.e. Little Endian.
La résolution est de 72 Dot Per Inch (DPI).
Les palettes de couleurs possibles sont 256 couleurs, 65536 couleurs ou couleurs vraies.
Blocs du flux Targa
Le format Targa est flux composé d'une succession de blocs.
Voici les codifications des blocs :
Identifiant | Description |
En-tête | En-tête du fichier. |
Commentaire | Commentaire de l'image. |
TableCouleurs | Table des couleurs. |
Image | Données de l'image. |
ZoneDeveloppement | Zone de développement. |
ZoneExtension | Zone d'extension. |
Terminateur | Terminaison du fichier. |
Bloc En-tête
Voici les propriétés du bloc :
Propriété | Taille en octets | Description |
TailleCommentaire | 1. | Taille du commentaire associé à l'image. |
IlExisteUneTableDeCouleurs | 1. | Si Vrai, il existe une table de couleurs. |
TypeImage | 1. | Type de l'image. |
IndexPremiereCouleur | 2. | Index non signé de la première couleur de l'image. |
NbCouleurs | 2. | Nombre de couleurs de l'image non signé. |
NbBitsParPixelPalette | 1. | Nombre de bits par pixel pour la palette. |
XOrigine | 2. | Abscisse d'origine de l'image non signée. |
YOrigine | 2. | Ordonnée d'origine de l'image non signée. |
LargeurPixels | 2. | Largeur en pixels de l'image non signée. |
HauteurPixels | 2. | Hauteur en pixels de l'image non signée. |
NbBitsParPixel | 1. | Nombre de bits par pixel. |
Options | 1. | Options. |
Les valeurs possibles de la propriété TypeImage sont :
- 1 pour une image non compressée avec une table de couleurs.
- 2 pour une image non compressée en couleurs vraies.
- 3 pour une image non compressée avec une table de niveaux de gris.
- 4 pour une image compressée avec une table de couleurs.
- 5 pour une image compressée en couleurs vraies.
- 6 pour une image compressée avec une table de niveaux de gris.
Les valeurs possibles de la propriété Options sont :
- 0x00 avec le masque 0x30 si le point de référence de l'image est l'angle bas gauche.
- 0x10 avec le masque 0x30 si le ppoint de référence de l'image est l'angle bas droit.
- 0x10 avec le masque 0x30 si le point de référence de l'image est l'angle haut gauche.
- 0x11 avec le masque 0x30 si le point de référence de l'image est l'angle haut droit.
- Le masque 0x0F donne le nombre de bits servant à coder la composante Alpha.
Les valeurs possibles de la propriété NbBitsParPixelPalette sont :
- 8 pour un niveau de gris sur un octet.
- 16 pour un niveau de gris sur deux octets.
- 24 pour une image en couleur sans transparence.
- 32 pour une image en couleur avec transparence.
Les valeurs possibles de la propriété NbBitsParPixel sont :
- 8 pour un niveau de gris sur un octet.
- 16 pour un niveau de gris sur deux octets.
- 24 pour une image en couleur sans transparence.
- 32 pour une image en couleur avec transparence.
Bloc Commentaire
Le bloc commentaire peut être vide si la taille est nulle.
Le commentaire est enregistré en Ascii.
Bloc TableCouleurs
La table des couleurs est composée d'une suite de trois ou quatre octets pour chaque entrée valide.
- 3 octets pour les composantes rouge, vert et bleu.
- 4 octets pour les composantes rouge, vert, bleu et alpha.
Bloc Image
Ce bloc contient les pixels de l'image du haut vers le bas et de la gauche vers la droite.
Si la compression est activé, il s'agit du Rule Length Encoded (RLE) appliqué aux pixels et non aux octets. Ainsi :
- Une répétition de quatre pixels codés sur trois octets en RGB donne 0x82 R G B.
- Une non répétition de deux pixels codés sur trois octets en RGB donne 0x01 R1 G1 B1 R2 B2 G2.
Bloc Zone de développement
Cette zone de comporte différentes propriétés propres à l'application. Les deux premiers octets non signés indique la taille de la zone.
Une taille de 0 signifie qu'il n'existe pas de propriétés propres à l'application.
Bloc Zone d'extension
Cette zone de 495 octets comporte différentes propriétés dont voici les plus utiles :
Propriété | Taille en octets | Description |
Taille | 2. | Taille non signée en octets. |
NomArtiste | 41. | Nom de l'artiste en position 2. |
NomApplication | 41. | Nom de l'application en position 426. |
Plan | 4. | Code des plans de couleurs en 470. |
CodeApplication | 3. | Code de l'application en position 476. |
GestionOpacite | 1. | Mode de gestion de l'opacité. |
Les valeurs possibles de la propriété Plan sont :
- RGB pour les composantes rouge, vert et bleu.
- ARGB pour les composantes alpha, rouge, vert et bleu.
Les valeurs possibles de la propriété GestionOpacite sont :
- 0x00 pour pas d'opacité.
- 0x03 pour l'opacité non calculé.
- 0x04 pour l'opacité calculé.
Bloc Terminateur
Cette zone de 26 octets comporte différentes propriétés dont voici les plus utiles :
Propriété | Taille en octets | Description |
Signature | 24. | Signature. |
Terminaison1 | 1. | 0x2E en position 24. |
Terminaison2 | 1. | 0x00 en position 25. |
La valeur de la propriété Signature doit être TRUEVISION-XFILE.
Enchaînement des blocs du flux Targa
Voici la grammaire d'enchaînement des blocs dans le flux Targa :
FluxTarga :
CommentaireOption :
TableCouleursOption :