Section courante

A propos

Section administrative du site

Fiche technique
Type Bitmap
Méthode de compression RLE, non-compressé
Nombre de couleurs 8 bits, 16 bits, 24 bits ou 32 bits
Supporte plusieurs images Non, une seule image dans un même fichier
Format des nombres Big-endian
Auteur Truevision, Inc.
Plateforme Amiga, Atari ST, DOS, UNIX, Windows,...

Introduction

L'extension de fichier «.TGA» permet d'indiquer un fichier d'image principalement utiliser sous Amiga, Atari ST ou MS-DOS et offrant jusqu'à 32 bits de couleurs. Pourtant, a l'origine, il était destiné au carte vidéo TARGA. Il s'agit de l'un des premiers sous-systèmes vidéo pour PC capable d'afficher des images en vraies couleurs sur la carte TARGA de la famille de produits Truevision d'AT&T. Quand elle a été introduite pour la première fois, cette carte sophistiquée a efficacement converti un PC modeste en une station de travail d'imagerie graphique. Le prix de la carte était également assez sophistiqué, de sorte que les cartes vidéos ne sont jamais devenues monnaie courante. De nos jours, la plupart des capacités de couleur de la carte vidéo peuvent être trouvées sur des adaptateurs SVGA standard et à faible coût. Bien que le créneau spécialisé de la carte vidéo TARGA soit petit, le format TARGA est devenu très important et est susceptible de durer encore un certain temps. La gamme complète de types d'images et de schémas de compression gérés par le format TARGA la rend à la fois étendue et difficile à gérer dans son intégralité. Les images peuvent contenir des pixels de 8, 15, 16, 24 ou 32 bits; ils peuvent être basés sur RVB (ou RGB en anglais), à cartographie de couleurs ou à échelle de gris; et ils peuvent être non compressés, encodés en RLE (Run-Length-Encoded), ou en compression Huffman. Une complexité supplémentaire pour un décodeur TARGA est le fait que les images TARGA peuvent être entreposées en miroir vertical ou horizontal; c'est-à-dire avec l'ordre des lignes de balayage inversé, l'ordre des pixels dans une ligne inversée, ou les deux. Malgré la prise en charge du format TARGA pour la compression RLE et Huffman, il est rare de rencontrer un fichier TARGA compressé. Pourtant, les images avec un grand nombre de couleurs simultanées présentent proportionnellement moins de redondance que les images plus simples et sont donc difficiles à compresser par des moyens traditionnels. La plupart de ces images présentent une compression négative avec un algorithme RLE typique. Le format TARGA est unique sur un point: sa prise en charge de la transparence et des superpositions d'image. Une superposition est une image avec des régions transparentes et est destinée à être placée au-dessus d'une autre image. Lorsque la superposition est transparente, la sous-image est visible et lorsque la superposition est opaque, elle masque la sous-image. La transparence est une option uniquement avec des images 16 bits et 32 bits. Un pixel d'image 16 bits est composé d'une valeur RVB en 15 bits et d'un indicateur de transparence 1 bit; un pixel d'image 32 bits est composé d'une valeur RVB 24 bits et d'une valeur de transparence 8 bits. Alors qu'un indicateur à 1 bit indique seulement deux états, entièrement transparent ou entièrement opaque, une valeur de 8 bits fournit une plage de transparence, permettant en effet à une image d'être mélangée avec une autre. En utilisation réelle, la valeur 8 bits est interprétée comme un indicateur 1 bit et une valeur de fusion 7 bits.

Structure du fichier

Malgré sa portée, le format TARGA lui-même est relativement simple. Il se compose d'un entête de fichier, d'une palette si l'image est une cartographie de couleur et de l'image elle-même. L'entête peut être éventuellement étendu jusqu'à 255 octets pour inclure des informations descriptives. Une particularité des images TARGA basées sur RVB est que les triplets RVB sont entreposés physiquement en arrière; c'est-à-dire dans l'ordre bleu-vert-rouge. Selon la résolution de couleur d'une image et ses options de transparence, un pixel basé sur RVB occupe 2 à 4 octets. Les pixels à deux octets contiennent un triple RVB de 15 bits et les pixels à 3 et 4 octets contiennent un triple RVB de 24 bits. Dans tous les cas, un pixel peut être lu dans un entier de 32 bits et les intensités primaires individuelles peuvent être extraites avec un masque approprié et quelques décalages de bits. En revanche, les images cartographiées en couleurs sont toujours constituées de valeurs de pixels de 8 bits indexant dans la palette de l'image. Bien entendu, cela implique une taille de palette maximale de 256 couleurs. Notez également que les pixels 8 bits sont utilisés quel que soit le nombre réel de couleurs dans la palette, y compris les images de 2 à 16 couleurs.

Structure d'entête du fichier

Voici l'entête de fichier de format Targa alias TGA :

Déplacement Taille Description
0 1 octet Ce champ contient la taille de l'en-tête en octets
1 1 octet Ce champ contient la version du format TGA :
Code Description
1 Ce code indique la version 1
2 1 octet Ce champ contient le format de codage des données :
Code Description
1 Ce code indique des données directes en 8bpp
2 Ce code indique des données directes en 24bpp (RVB)
9 Ce code indique un codage des répétitions (RLE) en 8 bpp
10 Ce code indique un codage des répétitions (RLE) en 24 bpp
3 1 mot Ce champ contient la position dans le fichier de la palette de couleur
5 1 mot Ce champ contient le nombre de couleurs contenu dans la palette
7 1 mot Ce champ contient la position d'origine X dans l'image
9 1 mot Ce champ contient la position d'origine Y dans l'image
11 1 mot Ce champ contient la dimension horizontale de l'image
13 1 mot Ce champ contient la dimension verticale de l'image
15 1 octet Ce champ contient le nombre de bits par pixel
16 1 octet Ce champ contient les options de l'image :
Code Description
0 Ce code indique que l'image est renversée verticalement
32 Ce code indique que l'image est dans le sens normal

Exemple

Voici un exemple montrant la structure de ce format suivant en Turbo Pascal 7 :

  1. Type
  2.   {Entête de fichier de format Targa}
  3.  TGAHeader=Record
  4.   IDFieldLength:Byte;        { Taille de l'en-tête en octets }
  5.   ColorMapType:Byte;         { Version du format TGA : }
  6.                              { 1 -> Celle reconnue par cette unit‚ }
  7.   ImageType:Byte;            { Format de codage des données : }
  8.                              { 1 -> Données directes en 8bpp }
  9.                              { 2 -> Données directes en 24bpp (RVB) }
  10.                              { 9 -> Codage des répétitions (RLE) en 8 bpp }
  11.                              { (non supporté par cette unité) }
  12.                              { 10 -> Codage des répétitions (RLE) en 24 bpp}
  13.                              { (non supporté par cette unité) }
  14.   CMapOrigin:Word;           { Position dans le fichier de la palette }
  15.   CMapLength:Word;           { Nombre de couleurs }
  16.   ColorMapEntrySize:Byte;
  17.   Xmin,Ymin,                 { Position d'origine dans l'image (rarement }
  18.                              { utilisé }
  19.   NumXPixels,NumYPixels:Word;{ Dimensions de l'image }
  20.   BitsPerPixel,              { Nombre de bits par pixel }
  21.   Option:Byte;               { Option de l'image : }
  22.                              { 0 -> Image renversée verticalement }
  23.                              { 32 -> Image dans le sens normal }
  24.  End;

Voir également

Langage de programmation - Traitement d'image - Accueil

Dernière mise à jour : Mardi, le 24 juin 2014