Une image au format Tagged Image File Format (TIFF) est encodée soit avec la convention d'Intel i.e. Little Endian ou soit avec celle de Motorola i.e. Big Endian.
La résolution est variable.
Les palettes de couleurs possibles sont noir et blanc, 16 couleurs, 256 couleurs ou couleurs vraies.
Une image logique peut comporter plusieurs images physiques. Par exemple, les pages d'une télécopie.
Voici les codifications des blocs :
Identifiant | Description |
En-tête | En-tête du fichier. |
Voici les propriétés du bloc :
Propriété | Taille en octets | Description |
Ordre des octets | 2. | II pour Intel MM pour Motorola. |
Signature | 2. | Signature non signée. 42. |
Offset | 4. | Offset du premier bloc. |
La propriété Offset mentionne l'offset du premier répertoire des blocs de l'image. Le déplacement est compté à partir du début du fichier.
Propriété | Taille en octets | Description |
Nombre d'entrées | 2. | Nombre d'entrées dans le répertoire. n. |
Entrée 0 | 12. | Bloc correspondant l'entrée 0. |
... | ... | ... |
Entrée n-1 | 12. | Bloc correspondant l'entrée n-1. |
Offset | 4. | Offset du répertoire suivant. |
La propriété Offset mentionne l'offset du répertoire suivant des blocs de l'image. Le déplacement est compté à partir du début du fichier.
Si Offset a pour valeur 0, alors il n'y a pas d'entrée suivante.
Propriété | Taille en octets | Description |
Etiquette | 2. | Etiquette de l'entrée. |
Type | 2. | Type de l'entrée. |
NbElements | 4. | Nombre d'éléments. |
Valeur | 4. | Valeur de l'entrée. |
Les entrées sont classées par ordre d'étiquette croissante.
Les valeurs possibles de la propriété Type sont :
Si la propriété NbElements a pour valeur 1, alors la valeur de l'entrée est une valeur unique. Sinon, sa valeur est un tableau du type Type. Voici deux cas particuliers :
Le type rationnel, il est obtenu par le quotient de deux entiers sur quatre octets. Le premier entier est le numérateur et le suivant le dénominateur.
Pour une entrée dont la valeur dépasse 4 octets, la propriété Valeur mentionne en fait un offset à partir duquel la valeur stricto sensus est conservée. Le déplacement est compté à partir du début du fichier.
Propriété | Code | Type | Description |
LargeurPixels | 256 | short ou long. | Largeur de l'image en pixels. |
HauteurPixels | 257 | short ou long. | Hauteur de l'image en pixels. |
Compression | 259 | short. | Mode de compression. |
InterpretationPhotometrique | 262 | short. | Si 1, l'image est en inverse vidéo. |
OffsetBande | 273 | short[] ou long[]. | Offset entre deux bandes de pixels. |
NbLignesParBande | 278 | short ou long. | Nombre de lignes de pixels par bande. |
NbOctetsParBande | 279 | short[] ou long[]. | Nombre d'octets par bande. |
ResolutionX | 282 | rationnel. | Résolution en abscisse. |
ResolutionY | 283 | rationnel. | Résolution en ordonnée. |
Unite | 296 | short. | Unité de mesure. |
Les valeurs admissibles pour la propriété Compression sont :
Les propriétés ResolutionX et ResolutionY sont exprimées en nombre de pixels par unité de mesure.
Les valeurs admissibles pour la propriété Unite sont :
L'image est découpée en bandes de lignes de même hauteur du haut vers le bas. Pour chaque bande, :
Propriété | Code | Type | Description |
NbBitsParPixel | 258 | short. | Nombre de bits par pixels - 4 ou 8. |
Voici les entrées de répertoire supplémentaires pour les images en couleurs :
Propriété | Code | Type | Description |
TableCouleurs | 320 | short[]. | Codage RGB des couleurs. |
La propriété TableCouleurs est un triple tableau d'entiers sur deux octets. Il y a un tableau par composante rouge, verte et bleue et il y a autant d'éléments dans chaque tableau que de couleurs. Le nombre de couleurs est défini par 2^NbBitsParPixel.
Propriété | Code | Type | Description |
ModeRemplissageOctet | 266 | short. | Mode de remplissage des octets. |
Commentaire | 270 | char[]. | Commentaire sur l'image. |
NomApplication | 305 | char[]. | Nom de l'application qui a créée l'image. |
NbInformationsParPixel | 277 | short. | Nombre d'informations par pixel. |
NomArtiste | 315 | char[]. | Nom de l'artiste. |
NbColonnesParCarreau | 322 | short ou long. | Nombre de colonnes de pixels par carreau. |
NbLignesParCarreau | 323 | short ou long. | Nombre de lignes de pixels par carreau. |
OffsetCarreau | 324 | short[] ou long[]. | Offset entre deux carreaux de pixels. |
NbOctetsParCarreau | 325 | short[] ou long[]. | Nombre d'octets par carreau. |
Copyright | 33 432 | char[]. | Copyright. |
La propriété ModeRemplissageOctet est uniquement utilisée pour les images en noir et blanc compressées avec l'algorithme Huffman :
Le nombre d'informations par pixel est usuellement :
Si les propriétés NbColonnesParCarreau, NbLignesParCarreau, OffsetCarreau et NbOctetsParCarreau sont renseignées, alors l'image n'est pas découpée en bandes mais en carreaux de gauche à droite puis de haut en bas :
Il existe d'autres propriétés non supportées par Up ! Tagged Image File Format.