Guide des types et formats de fichiers d'images
===============================================

Dans ce guide, nous aborderons les types de fichiers d'images généralement pris en charge par les navigateurs web, et nous vous donnerons des indications qui vous aideront à sélectionner les formats les plus appropriés pour l'imagerie de votre site.

Types de fichiers d'images communs
----------------------------------

Il existe de nombreux formats de fichiers d'images dans le monde. Toutefois, ceux qui sont énumérés ci-dessous sont généralement reconnus comme utilisables sur le Web, bien que **BMP ne soit généralement pas recommandé**, car la prise en charge par les navigateurs est potentiellement limitée ; il faut généralement l'éviter pour le contenu Web.

| Abréviation | Format du fichier (en) | Type de MIME | Extention(s) du fichier | Résumé | Prise en charge navigateur |
| --- | --- | --- | --- | --- | --- |
| APNG | Animated Portable Network Graphics | `image/apng` | `.apng` | 
 Bon choix pour les animations sans perte de qualité. AVIF et WebP ont de
 meilleures performances mais une moins bonne couverture des navigateurs.
  | Chrome, Edge, Firefox, Internet Explorer, Opera, Safari |
| AVIF | AV1 Image File Format | `image/avif` | `.avif` | 
 Un format avec de bonnes performances et sans licence commerciale qui
 peut être utilisé pour les images statiques comme animées. Il offre une
 meilleure compression que PNG et JPEG et une meilleure profondeur de
 couleur. Il est préférable d'utiliser des formats alternatifs via
 l'élément
 `<picture>`
 pour s'adapter aux différentes prises en charge des navigateurs.
  | Chrome, Edge, Firefox (fonctionnalités de base), Opera |
| GIF | Graphics Interchange Format | `image/gif` | `.gif` | 
 Un bon choix pour les images simples et les animations. On préfèrera
 toutefois PNG pour les images statiques sans pertes de compression et
 WebP, AVIF ou APNG pour les animations afin d'avoir de meilleures
 compressions.
  | Chrome, Edge, Firefox, Internet Explorer, Opera, Safari |
| JPEG | Joint Photographic Expert Group | `image/jpeg` | `.jpg`, `.jpeg`, `.jfif`,
 `.pjpeg`, `.pjp` | 
 Un bon choix pour les images compressées avec pertes. C'est le format le
 plus populaire et parmi les mieux pris en charge. PNG sera préférable si
 on préfère une meilleure fidélité à l'image et WebP/AVIF permettront
 d'avoir de meilleurs taux de compression.
  | Chrome, Edge, Firefox, Internet Explorer, Opera, Safari |
| PNG | Portable Network Graphics | `image/png` | `.png` | 
 PNG pourra être préféré à JPEG lorsqu'on a besoin d'une meilleure
 précision ou de transparence. WebP/AVIF permettront d'avoir de meilleurs
 taux de compression mais leur prise en charge navigateur est plus
 faible.
  | Chrome, Edge, Firefox, Internet Explorer, Opera, Safari |
| SVG | Scalable Vector Graphics | `image/svg+xml` | `.svg` | 
 Un format d'image vectoriel idéal pour les éléments d'interface
 utilisateur, les icônes ou diagrammes qui nécessitent de s'afficher
 précisément quelle que soit l'échelle.
  | Chrome, Edge, Firefox, Internet Explorer, Opera, Safari |
| WebP | Web Picture | `image/webp` | `.webp` | 
 Un excellent choix pour les images statiques ou animées. Les taux de
 compression de ce format sont meilleurs que pour PNG ou JPEG. Ce format
 prend également en charge de meilleures profondeurs pour les couleurs,
 les *frames* animées, la transparence, etc.
  | Chrome, Edge, Firefox, Opera |

Les formats moins récents comme PNG, JPEG, GIF possèdent de moins bonnes performances que des formats comme WebP et AVIF mais bénéficient d'une compatibilité navigateur plus large. Les formats plus récents gagnent en popularité du fait que la part des navigateurs incompatibles diminue.

Le tableau qui suit indique les formats d'image qui peuvent également être utilisés sur le Web mais qui devraient être évités en raison de leur compatibilité faible ou de l'existence de meilleurs formats.

| Abréviation | Format de fichier | Type MIME | Extension(s) | Prise en charge navigateur |
| --- | --- | --- | --- | --- |
| BMP | Bitmap | `image/bmp` | `.bmp` | Chrome, Edge, Firefox, Internet Explorer, Opera, Safari |
| ICO | Microsoft Icon | `image/x-icon` | `.ico`, `.cur` | Chrome, Edge, Firefox, Internet Explorer, Opera, Safari |
| TIFF | Tagged Image File Format | `image/tiff` | `.tif`, `.tiff` | Aucune prise en charge native, addons nécessaires |

L'abréviation de chaque format renvoie à une description plus longue du format, de ses capacités et à des informations détaillées sur la compatibilité des navigateurs ; y compris les versions qui ont introduit le support et les caractéristiques spéciales spécifiques qui ont pu être introduites ultérieurement.

Détails sur le type de fichier image
------------------------------------

Les sections suivantes donnent un bref aperçu de chacun des types de fichiers d'images pris en charge par les navigateurs web.

Dans les tableaux ci-dessous, le terme **bits par composante** fait référence au nombre de bits utilisés pour représenter chaque composante de couleur. Par exemple, une profondeur de couleur RVB de 8 indique que chacune des composantes rouge, verte et bleue est représentée par une valeur de 8 bits. **La profondeur de bit**, d'autre part, correspond au nombre total de bits utilisés pour représenter chaque pixel en mémoire.

### APNG (Animated Portable Network Graphics)

L'APNG est un format de fichier introduit pour la première fois par Mozilla qui étend le PNG pour ajouter le support des images animées. Conceptuellement similaire au format GIF animé qui est utilisé depuis des décennies, l'APNG est plus performant dans la mesure où il prend en charge une variété de profondeur de couleur, alors que le GIF animé ne supporte que des couleurs indexées sur 8 bits.

L'APNG est idéal pour les animations de base qui n'ont pas besoin d'être synchronisées avec d'autres activités ou avec une bande son, comme les indicateurs de progrès, indicateur d'activité, et autres séquences animées. Par exemple, l'APNG est l'un des formats pris en charge lors de la création d'autocollants animés pour l'application iMessage d'Apple (et l'application Messages sur iOS). Ils sont également couramment utilisés pour les parties animées des interfaces utilisateur des navigateurs web.

|  |  |
| --- | --- |
| Type de MIME | `image/apng` |
| Extention(s) de fichier(s) | `.apng` |
| Spécification | wiki.mozilla.org/APNG\_Specification |
| Compatibilité des navigateurs | Chrome 59, Edge 12, Firefox 3, Opera 46, Safari 8 |
| Dimensions maximales | 2 147 483 647×2 147 483 647 pixels |
| Modes de couleur supportés | 

| Mode de couleur | Bits par composante (*D*) | Description |
| --- | --- | --- |
| Niveau de gris | 1, 2, 4, 8, et 16 | 
 Chaque pixel est constitué d'une seule valeur *D*-bit
 indiquant la luminosité du pixel en niveaux de gris.
  |
| Vraie couleur | 8 et 16 | 
 Chaque pixel est représenté par trois valeurs de *D*-bit
 indiquant le niveau des composantes de couleur rouge, verte et
 bleue.
  |
| Couleur indexée | 1, 2, 4, et 8 | 
 Chaque pixel est une valeur *D*-bit indiquant un index
 dans une palette de couleurs qui est contenue dans un morceau
 `PLTE`
 dans le fichier APNG ; les couleurs de la palette utilisent
 toutes une profondeur de 8 bits.
  |
| Niveau de gris avec alpha | 8 et 16 | 
 Chaque pixel est représenté par deux valeurs *D*-bit :
 l'intensité du pixel en niveaux de gris et un échantillon alpha,
 indiquant le degré d'opacification du pixel.
  |
| Vraie couleur avec alpha | 8 et 16 | 
 Chaque pixel est composé de quatre composantes de couleur
 *D*-pixel : rouge, vert, bleu, et l'échantillon alpha
 indiquant le degré d'opacité du pixel.
  |

 |
| Compression | Sans perte |
| Licence | 
 Gratuit et ouvert dans le cadre de la
 Creative Commons Attribution-ShareAlike license
 (CC-BY-SA)
 version 3.0 ou plus.
  |

### AVIF

AV1 Image File Format (AVIF) est un format open-source et sans licence commerciale qui encode *des flux de bits AV1 dans un conteneur High Efficiency Image File Format (HEIF).*

*AV1 est un format d'encodage originellement conçu pour la transmission de vidéos sur Internet. Ce format bénéficie des avancées de la recherche sur l'encodage vidéo et peut bénéficier de la prise en charge matérielle des appareils. Un inconvénient est la différence de prérequis entre l'encodage vidéo / image.*

Ce format dispose :

* D'une excellente compression avec pertes par rapport à JPG et PNG pour des résultats visuels similaires (les images AVIF avec pertes pèsent environ la moitié des images JPEG).
* D'une meilleure compression que WebP — mediane à 50% par rapport à 30% de compression pour le même ensemble de fichiers JPG (source : AVIF WebP Comparison (CTRL Blog)).
* D'une compression sans perte.
* D'un stockage pour les animations/multi-images (similaire aux GIF aniimés mais avec une bien meilleure compression)
* D'une prise en charge de la transparence avec un canal alpha.
* Du *High Dynamic Range* (HDR) qui permet de stocker des images avec une plus grande largeur de contraste entre les zones les plus claires et les plus sombres.
* D'un spectre de couleurs (*gamut*) élargi.

AVIF ne prend pas en charge l'affichage progressif et il faut donc que les fichiers soient complètement téléchargés avant de pouvoir être affichés. Cela a peu d'impact pour la plupart des fichiers AVIF qui sont plus légers que leurs équivalents JPEG ou PNG. En revanche, pour les fichiers plus volumineux, on devra considérer un format qui prend en charge le rendu progressif.

La prise en charge navigateur n'étant pas aussi large que pour les autres formats, il est préférable d'utiliser l'élément HTML `<picture>` pour fournir des images alternatives au format JPEG ou PNG.

|  |  |
| --- | --- |
| Type MIME | `image/avif` |
| Extension | `.avif` |
| Spécification | AV1 Image File Format (AVIF) |
| Compatibilité des navigateurs | 
 Chrome 85, Opera 71 et Firefox (via
 une préférence).
 * Pour Firefox 77 et ultérieur : `image.avif.enable` doit
 être passée à `true`. Firefox implémente pour le moment
 une prise en charge simple d'AVIF. Les fonctionnalités plus avancées
 comme les images animées ou les espaces de couleurs sont en cours de
 développement (voir
 le bug 1682995).
 |
| Dimensions maximums | 2 147 483 647×2 147 483 647 pixels |
| Modes de couleurs supportés | 
 Voir
 AV1 Bitstream & Decoding Process Specification, section 6.4.2 : Color config semantics.

Pour résumer de façon non-exhaustive :* Modes de couleur : YUV444, YUV422, YUV420
* Niveau de gris : YUV400
* Bits : 8/10/12 bits
* Prise en charge du canal alpha
* Prise en charge des profils ICC
* Prise en charge NCLX : sRGB, sRGB linéaire, Rec2020 linéaire, PQ
 Rec2020, HLG Rec2020, PQ P3, HLG P3, etc.
* Prise en charge des tuiles
 |
| Compression | Avec ou sans perte. |
| Licence | 
 Pas de licence commerciale. Informations disponibles sur
 https://aomedia.org/license/
 .
  |

### BMP (Bitmap file)

Le type de fichier BMP **(image Bitmap)** est le plus répandu sur les ordinateurs Windows, et n'est généralement utilisé que dans des cas particuliers pour les applications et contenus web.

**Attention :** Vous devriez généralement éviter d'utiliser le BMP pour le contenu des sites web, car ce n'est pas une utilisation généralement acceptée du format.

BMP soutient théoriquement une variété de représentations de données internes. La forme la plus simple, et la plus couramment utilisée, de fichier BMP est une image tramée non compressée, chaque pixel occupant 3 octets représentant ses composantes rouge, verte et bleue, et chaque ligne étant rembourrée avec des `0x00` octets à un multiple de 4 octets de large.

Bien que d'autres représentations de données soient définies dans la spécification, elles ne sont pas largement utilisées et sont souvent complètement inappliquées. Ces caractéristiques comprennent : la prise en charge de différentes profondeurs de bits, la couleur indexée, les canaux alpha et différents ordres de pixels (par défaut, BMP est écrit du coin inférieur gauche vers la droite et le haut, plutôt que du coin supérieur gauche vers la droite et le bas).

Théoriquement, plusieurs algorithmes de compression sont pris en charge, et les données d'image peuvent également être stockées au format JPEG ou PNG dans le fichier BMP.

|  |  |
| --- | --- |
| Type de MIME | `image/bmp` |
| Extension(s) de fichier(s) | `.bmp` |
| Spécification | 
 Aucune spécification ; toutefois, Microsoft fournit une documentation
 générale sur le format à l'adresse
 docs.microsoft.com/fr/windows/desktop/gdi/bitmap-storage |
| Compatibilité des navigateurs | 
 Toutes versions de Chrome, Edge, Firefox, Internet Explorer, Opera, et
 Safari
  |
| Dimensions maximales | 
 Soit 32 767×32 767 ou 2 147 483 647×2 147 483 647 pixels, selon la
 version du format
  |
| Modes de couleur supportés | 

| Mode de couleur | Bits par composante (*D*) | Description |
| --- | --- | --- |
| Niveau de gris | 1 | 
 Chaque bit représente un seul pixel, qui peut être noir ou
 blanc.
  |
| Vraie couleur | 8 et 16 | 
 Chaque pixel est représenté par trois valeurs représentant les
 composantes de couleur rouge, verte et bleue ; chacune d'entre
 elles est constituée de *D* bits.
  |
| Couleur indexée | 2, 4, et 8 | 
 Chaque pixel est représenté par une valeur de 2, 4 ou 8 bits,
 qui sert d'index dans la table des couleurs.
  |
| Niveau de gris avec alpha | *n/a* | Le BMP n'a pas de format d'échelle de gris distinct. |
| Vraie couleur avec alpha | 8 et 16 | 
 Chaque pixel est représenté par quatre valeurs représentant les
 composantes de couleur rouge, verte, bleue et alpha ; chacune
 d'entre elles est constituée de *D* bits.
  |

 |
| Compression | 
 Plusieurs méthodes de compression sont prises en charge, notamment les
 algorithmes avec ou sans perte
  |
| Licence | 
 Couvert par la promesse de spécification ouverte de Microsoft ; bien que
 Microsoft détienne des brevets contre la BMP, elle a publié une promesse
 de ne pas faire valoir ses droits de brevet tant que des conditions
 spécifiques sont remplies. Il ne s'agit toutefois pas d'une licence. BMP
 est inclus dans le format Windows Metafile (`.wmf`).
  |

### GIF (Graphics Interchange Format)

En 1987, le fournisseur de services en ligne CompuServe a introduit le **"GIF"** (**Graphics Interchange Format**) pour fournir un format graphique compressé que tous les membres de leur service pourront utiliser. Le GIF utilise l'algorithme Lempel-Ziv-Welch (LZW) pour compresser sans perte des images couleur indexés sur 8 bits. Le GIF était l'un des deux premiers formats graphiques pris en charge par HTML, ainsi que XBM.

Chaque pixel d'un GIF est représenté par une seule valeur de 8 bits servant d'index dans une palette de couleurs de 24 bits (8 bits pour le rouge, le vert et le bleu). La longueur d'une table de couleurs est toujours une puissance de 2 (c'est-à-dire que chaque palette a 2, 4, 8, 16, 32, 64 ou 256 entrées). Pour simuler plus de 255 ou 256 couleurs, on utilise généralement la diffusion d'erreur(*dithering*). Il est techniquement possible de superposer plusieurs blocs d'images, chacun avec sa propre palette de couleurs, pour créer des images en couleurs réelles, mais en pratique, cela est rarement fait.

Les pixels sont opaques, sauf si un indice de couleur spécifique est désigné comme transparent, auquel cas les pixels colorés à cette valeur sont entièrement transparents.

Le GIF permet une animation simple, dans laquelle, après une première image de taille réelle, une série d'images reflétant les parties de l'image qui changent avec chaque image est fournie.

Le GIF est extrêmement populaire depuis des décennies, en raison de sa simplicité et de sa compatibilité. Son support d'animation a provoqué un regain de popularité à l'ère des médias sociaux, lorsque les GIF animés ont commencé à être largement utilisés pour de courtes "vidéos", des mèmes et d'autres séquences d'animation simples.

Une autre caractéristique populaire du GIF est la prise en charge de l'entrelacement, où les rangées de pixels sont stockées dans le désordre afin que les fichiers partiellement reçus puissent être affichés en qualité inférieure. Cela est particulièrement utile lorsque les connexions réseau sont lentes.

Le format GIF est un bon choix pour les images et les animations simples, bien que la conversion d'images couleur en GIF puisse entraîner des diffusions d'erreur insatisfaisantes. En règle générale, le contenu moderne devrait utiliser PNG pour les images fixes sans perte et indexées, et devrait envisager d'utiliser APNG pour les séquences d'animation sans perte.

|  |  |
| --- | --- |
| Type de MIME | `image/gif` |
| Extention(s) du fichier(s) | `.gif` |
| Spécification | Spécification GIF87aSpécification GIF89a |
| Compatibilité des navigateurs | 
 Toutes les versions de Chrome, Edge, Firefox, Internet Explorer, Opera,
 and Safari
  |
| Dimensions maximales | 65 536×65 536 pixels |
| Modes de couleur pris en charge | 

| Mode couleur | Bits par composante (*D*) | Description |
| --- | --- | --- |
| Niveau de gris | *n/a* | Le GIF n'inclut pas un format de niveaux de gris spécifique. |
| Vraie couleur | *n/a* | Le GIF ne prend pas en charge les pixels en couleurs réelles. |
| Couleur indexée | 8 | 
 Chaque couleur d'une palette GIF est définie par 8 bits de
 rouge, de vert et de bleu (24 bits au total par pixel).
  |
| Niveau de gris avec alpha | *n/a* | Le GIF ne fournit pas de format de niveaux de gris spécifique. |
| Vraie couleur avec alpha | *n/a* | Le GIF ne prend pas en charge les pixels en couleurs réelles. |

 |
| Compression | Sans perte (LZW) |
| Licence | 
 Alors que le format GIF lui-même est ouvert, l'algorithme de compression
 LZW était couvert par des brevets jusqu'au début des années 2000. Depuis
 le 7 juillet 2004, tous les brevets pertinents ont expiré et le format
 GIF peut être utilisé librement.
  |

### ICO (Microsoft Windows icon)

Le format de fichier ICO (Microsoft Windows icon) a été conçu par Microsoft pour les icônes de bureau des systèmes Windows. Cependant, les premières versions d'Internet Explorer ont introduit la possibilité pour un site web de fournir un fichier ICO nommé `favicon.ico` dans le répertoire racine d'un site web pour spécifier un **favicon** — une icône à afficher dans le menu Favoris, et d'autres endroits où une représentation iconique du site serait utile.

Un fichier ICO peut contenir plusieurs icônes, et commence par un répertoire contenant des détails sur chacune d'entre elles. Ce répertoire est suivi des données relatives aux icônes. Les données de chaque icône peuvent être soit une image BMP sans l'en-tête du fichier, soit une image PNG complète (y compris l'en-tête du fichier). Si vous utilisez des fichiers ICO, vous devez utiliser le format BMP, car la prise en charge du format PNG dans les fichiers ICO n'a été ajoutée qu'à partir de Windows Vista et pourrait ne pas être bien prise en charge.

**Attention :** Les fichiers ICO ne doivent pas être utilisés dans le contenu Web. En outre, leur utilisation pour les favicons a diminué au profit de l'utilisation d'un fichier PNG et de l'élément `<link>`, comme décrit dans cette section.


|  |  |
| --- | --- |
| Type de MIME | `image/vnd.microsoft.icon` (officiel),
 `image/x-icon` (utilisé par Microsoft)
  |
| Extention(s) de fichier(s) | `.ico` |
| Spécification |  |
| Compatibilité des navigateurs | 
 Toutes les versions de Chrome, Edge, Firefox, Internet Explorer, Opera
 et Safari
  |
| Dimensions maximales | 256×256 pixels |
| Modes de couleur pris en charge | 

Icônes au format BMP| Mode de couleur | Bits par composante (*D*) | Description |
| --- | --- | --- |
| Niveau de gris | 1 | 
 Chaque bit représente un seul pixel, qui peut être noir ou
 blanc.
  |
| Vraie couleur | 8 et 16 | 
 Chaque pixel est représenté par trois valeurs représentant les
 composantes de couleur rouge, verte et bleue ; chacune d'entre
 elles est constituée de *D* bits.
  |
| Couleur indexée | 2, 4, et 8 | 
 Chaque pixel est représenté par une valeur de 2, 4 ou 8 bits,
 qui sert d'index dans la table des couleurs.
  |
| Niveau de gris avec alpha | *n/a* | Le BMP n'a pas de format d'échelle de gris distinct. |
| Vraie couleur avec alpha | 8 et 16 | 
 Chaque pixel est représenté par quatre valeurs représentant les
 composantes de couleur rouge, verte, bleue et alpha ; chacune
 d'entre elles est constituée de *D* bits.
  |

Icônes au format PNG| Mode de couleur | Bits par composante (*D*) | Description |
| --- | --- | --- |
| Niveau de gris | 1, 2, 4, 8 et 16 | 
 Chaque pixel est constitué d'une seule valeur *D*-bit
 indiquant la luminosité du pixel en niveaux de gris.
  |
| Vraie couleur | 8 et 16 | 
 Chaque pixel est représenté par trois valeurs de *D*-bit
 indiquant le niveau des composantes de couleur rouge, verte et
 bleue.
  |
| Couleur indexée | 1, 2, 4 et 8 | 
 Chaque pixel est une valeur de *D*-bit indiquant un index
 dans une palette de couleurs qui est contenue dans un morceau de
 `PLTE`
 dans le fichier APNG ; les couleurs de la palette utilisent
 toutes une profondeur de 8 bits.
  |
| Niveau de gris avec alpha | 8 et 16 | 
 Chaque pixel est représenté par deux valeurs *D*-bit :
 l'intensité du pixel en niveaux de gris et un échantillon alpha,
 indiquant le degré d'opacification du pixel.
  |
| Vraie couleur avec alpha | 8 et 16 | 
 Chaque pixel est composé de quatre composantes de couleur
 *D*-pixel : rouge, vert, bleu, et l'échantillon alpha
 indiquant le degré d'opacité du pixel.
  |

 |
| Compression | 
 Les icônes au format BMP utilisent presque toujours une compression sans
 perte, mais des méthodes avec perte sont disponibles. Les icônes au
 format PNG sont toujours compressées sans perte.
  |
| Licence | — |

### JPEG (Joint Photographic Experts Group image)

Le JPEG (typiquement prononcé "**j-peg**") est actuellement le format de compression avec perte le plus utilisé pour les images fixes. Il est particulièrement utile pour les photographies ; l'application de la compression avec perte au contenu nécessitant de la netteté, comme les diagrammes ou les graphiques, peut produire des résultats insatisfaisants.

Le JPEG est en fait un format de données pour les photos compressées, plutôt qu'un type de fichier. La spécification JFIF (JPEG **F**ile **I**nterchange **F**ormat) décrit le format des fichiers que nous considérons comme des images "JPEG".

|  |  |
| --- | --- |
| Type de MIME | `image/jpeg` |
| Extentions(s) de fichier(s) | `.jpg`, `.jpeg`, `.jpe`,
 `.jif`, `.jfif` |
| Spécification | jpeg.org/jpeg/ |
| Compatibilité des navigateurs | 
 Toutes les versions de Chrome, Edge, Firefox, Internet Explorer, Opera
 et Safari
  |
| Dimensions maximales | 65 535×65 535 pixels |
| Modes de couleur pris en charge | 

| Mode de couleur | Bits par composante (*D*) | Description |
| --- | --- | --- |
| Niveau de gris | *n/a* | Le JPEG n'a pas de mode d'échelle de gris distinct. |
| Vraie couleur | 8 | 
 Chaque pixel est décrit par les composantes de couleur rouge,
 bleue et verte, chacune d'entre elles étant composée de 8 bits.
  |
| Couleur indexée | *n/a* | Le JPEG n'offre pas de mode couleur indexé. |
| Niveau de gris avec alpha | *n/a* | Le JPEG ne prend pas en charge un canal alpha. |
| Vraie couleur avec alpha | *n/a* | Le JPEG ne prend pas en charge un canal alpha. |

 |
| Compression | 
 Sans perte; sur la base de la
 transformée en cosinus discrète |
| Licence | Depuis le 27 octobre 2006, tous les brevets américains ont expiré. |

### PNG (Portable Network Graphics)

Le format d'image PNG utilise une compression sans perte, prend en charge des profondeurs de couleurs plus élevées que le GIF, est plus efficace, et prend complètement en charge la transparence alpha.

Le format PNG est largement soutenu, tous les principaux navigateurs offrant une prise en charge complète de ses fonctionnalités. Internet Explorer, qui a introduit le support PNG dans les versions 4-5, ne l'a pas entièrement pris en charge avant IE 9, et a connu de nombreux bogues tristement célèbres pendant de nombreuses années, y compris dans l'Internet Explorer 6, autrefois omniprésent. Cela a ralenti l'adoption de la PNG, mais elle est maintenant couramment utilisée, surtout lorsqu'il faut reproduire avec précision l'image source.

|  |  |
| --- | --- |
| Type de MIME | `image/png` |
| Extension(s) de fichier(s) | `.png` |
| Spécification | w3.org/TR/PNG |
| Comptabilité des navigateurs | 

| Fonctionnalité | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
| --- | --- | --- | --- | --- | --- | --- |
| Support de base | 1 | 12 | 1 | 5 | 3.5.1 (Presto)15 (Blink) | 1 |
| Canal Alpha | 1 | 12 | 1 | 5 | 6 (Presto)Toute (Blink) | 1 |
| Correction gamma | non | oui | 1 | 8 | 1 | cassé |
| Correction des couleurs | non | oui | 3 | 9 | non | non |
| Entrelacement | non | ? | 1 | cassé | 3.5.1 | non |

 |
| Dimensions maximales | 2 147 483 647×2 147 483 647 pixels |
| Modes de couleur pris en charge | 

| Mode de couleur | Bits par composante (*D*) | Description |
| --- | --- | --- |
| Niveau de gris | 1, 2, 4, 8 et 16 | 
 Chaque pixel est constitué d'une seule valeur *D*-bit
 indiquant la luminosité du pixel en niveaux de gris.
  |
| Vraie couleur | 8 et 16 | 
 Chaque pixel est représenté par trois valeurs de *D*-bit
 indiquant le niveau des composantes de couleur rouge, verte et
 bleue.
  |
| Couleur indexée | 1, 2, 4 et 8 | 
 Chaque pixel est une valeur de bit *D* indiquant un index
 dans une palette de couleurs qui est contenue dans un morceau de
 `PLTE`
 dans le fichier APNG ; les couleurs de la palette utilisent
 toutes une profondeur de 8 bits.
  |
| Niveau de gris avec alpha | 8 et 16 | 
 Chaque pixel est représenté par deux valeurs *D*-bit :
 l'intensité du pixel en niveaux de gris et un échantillon alpha,
 indiquant le degré d'opacification du pixel.
  |
| Vraie couleur avec alpha | 8 et 16 | 
 Chaque pixel est composé de quatre composantes de couleur
 *D*-pixel : rouge, vert, bleu, et l'échantillon alpha
 indiquant le degré d'opacité du pixel.
  |

 |
| Compression | Couleur sans perte, éventuellement indexée comme le GIF |
| Licence | 
 ©2003 W3C® (MIT, ERCIM,
 Keio), Tous Droits Réservés. Les
 règles du W3C en matière de
 responsabilité, de
 marque commerciale, d'utilisation des documents
 et de
 licences de logiciels
 s'appliquent. Pas de brevets porteurs de royalties connus.
  |

### SVG (Scalable Vector Graphics)

Le SVG est une base XML pour le format d'image vectorielle qui spécifie le contenu d'une image comme un ensemble de commandes de dessin qui créent des formes, des lignes, appliquent des couleurs, des filtres, etc. Les fichiers SVG sont idéaux pour les diagrammes, les icônes et autres images qui peuvent être dessinés avec précision à n'importe quelle taille. En tant que tel, le SVG est populaire pour les éléments d'interface utilisateur dans la conception moderne du Web.

Les fichiers SVG sont des fichiers texte contenant le code source qui, une fois interprété, dessine l'image souhaitée. Par exemple, cet exemple définit une zone de dessin de taille initiale de 100 par 100 unités, contenant une ligne tracée en diagonale à travers la boîte :


```html
<svg viewBox="0 0 100 100" xmlns="https://www.w3.org/2000/svg">
  <line x1="0" y1="80" x2="100" y2="20" stroke="black" />
</svg>
```


Le SVG peut être utilisé dans le contenu du web de deux façons :

1. Vous pouvez directement écrire l'élément `<svg>` dans le HTML, contenant des éléments SVG pour dessiner l'image.
2. Vous pouvez afficher une image SVG partout où vous pouvez utiliser les autres types d'images, y compris avec les éléments `<img>` et `<image>`, les propriétés `background-image` du CSS, etc.

Le SVG est un choix idéal pour les images qui peuvent être représentées à l'aide d'une série de commandes de dessin, en particulier si la taille à laquelle l'image sera rendue est inconnue ou peut varier, puisque le SVG s'adaptera en douceur à la taille souhaitée. Il n'est généralement pas utile pour les images strictement bitmap ou photographiques, bien qu'il soit possible d'inclure des images bitmap dans un SVG.

|  |  |
| --- | --- |
| Type de MIME | `image/svg+xml` |
| Extension(s) de fichier(s) | `.svg` |
| Specification | w3.org/TR/SVG2 |
| Compatibilité des navigateurs | 

| Fonctionnalité | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
| --- | --- | --- | --- | --- | --- | --- |
| Le support du SVG | 4 | 12 | 3 | 9 | 10 (Presto)15 (Blink) | 3.2 |
| 
 SVG comme image (`<img>`
 etc)
  | 28 | 12 | 4 | 9 | 10 (Presto)15 (Blink) | 9 |

 |
| Dimensions maximales | Illimité |
| Modes de couleur pris en charge | 
 Les couleurs en SVG sont spécifiées à l'aide de
 syntaxe de couleur CSS.
  |
| Compression | 
 La source SVG peut être compressée pendant le transit en utilisant les
 techniques de
 compression HTTP, ou sur
 disque en tant que fichier `.svgz`.
  |
| Licence | 
 ©2018 W3C® (MIT, ERCIM,
 Keio,
 Beihang), Tous Droits Réservés.
 Les règles du W3C en matière de
 responsabilité, de
 marque commerciale, d'utilisation des documents
 et de
 licences de logiciels
 s'appliquent. Pas de brevets porteurs de royalties connus.
  |

### TIFF (Tagged Image File Format)

TIFF est un format de fichier graphique matriciel qui a été créé pour stocker des photos scannées, bien qu'il puisse s'agir de n'importe quel type d'image. Il s'agit d'un format quelque peu "lourd", dans la mesure où les fichiers TIFF ont tendance à être plus volumineux que les images d'autres formats. Cela s'explique par les métadonnées souvent incluses, ainsi que par le fait que la grande majorité des fichiers TIFF ne sont pas compressés. Cependant, les méthodes de compression avec et sans perte sont toutes deux prises en charge par la spécification TIFF.

Chaque valeur d'un fichier TIFF est spécifiée à l'aide de sa **balise** (indiquant le type d'information dont il s'agit, comme la largeur de l'image) et de son **type** (indiquant le format dans lequel les données sont stockées), suivis de la longueur du tableau de valeurs à attribuer à cette balise (toutes les propriétés sont stockées dans des tableaux, même pour des valeurs uniques). Cela permet d'utiliser différents types de données pour les mêmes propriétés. Par exemple, la largeur d'une image, `ImageWidth`, est stockée à l'aide de la balise `0x0100` et est un tableau à une entrée. En précisant le type 3 (`SHORT`), la valeur de `ImageWidth` est stockée comme une valeur de 16 bits :

| Balise | Type | Taille | Valeur |
| --- | --- | --- | --- |
| `0x0100` (`ImageWidth`) | `0x0003` (`SHORT`) | `0x00000001` (1 entée) | `0x0280` (640 pixels) |

La spécification du type 4 (`LONG`) enregistre la largeur comme une valeur de 32 bits :

| Balise | Type | Taille | Valeur |
| --- | --- | --- | --- |
| `0x0100` (`ImageWidth`) | `0x0004` (`LONG`) | `0x00000001` (1 entry) | `0x00000280` (640 pixels) |

Un seul fichier TIFF peut contenir plusieurs images ; il peut être utilisé pour représenter des documents de plusieurs pages, par exemple (comme un document de plusieurs pages scanné ou une télécopie reçue). Toutefois, un logiciel qui lit les fichiers TIFF n'est nécessaire que pour prendre en charge la première image.

Le TIFF prend en charge divers espaces de couleur, et pas seulement le RGB. Il s'agit notamment de CMJN, YCbCr et autres, ce qui fait du TIFF un bon choix pour le stockage d'images destinées à la presse écrite, au cinéma ou à la télévision.

Il y a longtemps, certains navigateurs prenaient en charge les images TIFF dans le contenu Web ; aujourd'hui, cependant, vous devez utiliser des bibliothèques spéciales ou des modules complémentaires de navigateur pour le faire. Les fichiers TIFF ne sont donc pas utiles dans le contexte du contenu web, mais il est courant de fournir des fichiers TIFF téléchargeables lors de la distribution de photos et d'autres œuvres d'art destinées à être modifiées ou imprimées avec précision.

|  |  |
| --- | --- |
| Type de MIME | `image/tiff` |
| Extension(s) de fichier(s) | `.tif`, `.tiff` |
| Spécification | adobe.io/open/standards/TIFF.html |
| Compatibilité des navigateurs | 
 Aucun navigateur n'intègre la prise en charge du TIFF ; son intérêt
 réside dans le fait qu'il peut être téléchargé
  |
| Dimensions maximales | 4 294 967 295×4 294 967 295 pixels (théoriquement) |
| Modes de couleur pris en charge | 

| Mode de couleur | Bits par composante (*D*) | Description |
| --- | --- | --- |
| Bilevel | 1 | 
 Un TIFF à deux niveaux stocke 8 bits dans chaque octet, un bit
 par pixel. Le champ
 `PhotometricInterpretation` indique lequel de 0 et 1
 est noir et lequel est blanc.
  |
| Niveaux de gris | 4 et 8 | 
 Chaque pixel est constitué d'une seule valeur *D*-bit
 indiquant la luminosité du pixel en niveaux de gris.
  |
| Vraie couleur | 8 | 
 Toutes les images RVB en couleurs réelles sont stockées en
 utilisant 8 bits de rouge, de vert et de bleu.
  |
| Couleur indexée | 4 et 8 | 
 Chaque pixel est un index dans un enregistrement
 `ColorMap`, qui définit les couleurs utilisées dans
 l'image. La carte des couleurs répertorie toutes les valeurs de
 rouge, puis toutes les valeurs de vert, puis toutes les valeurs
 de bleu (plutôt que `rgb`, `rgb`,
 `rgb...`).
  |
| Niveaux de gris avec alpha | 4 et 8 | 
 L'information alpha est ajoutée en spécifiant qu'il y a plus de
 3 échantillons par pixel dans le champ
 `SamplesPerPixel`, et en indiquant le type d'alpha (1
 pour une composante alpha pré-multipliée associée, et 2 pour une
 alpha non associée (une couche séparée) ; cependant, les canaux
 alpha sont rarement utilisés dans les fichiers TIFF et peuvent
 ne pas être pris en charge par le logiciel de l'utilisateur.
  |
| Vraie couleur avec alpha | 8 | 
 L'information alpha est ajoutée en spécifiant qu'il y a plus de
 3 échantillons par pixel dans le champ
 `SamplesPerPixel`, et en indiquant le type d'alpha (1
 pour une composante alpha pré-multipliée associée, et 2 pour une
 alpha non associée (une couche séparée) ; cependant, les canaux
 alpha sont rarement utilisés dans les fichiers TIFF et peuvent
 ne pas être pris en charge par le logiciel de l'utilisateur.
  |

 |
| Compression | 
 La plupart des fichiers TIFF ne sont pas compressés, mais les PackBits
 sans perte et la compression LZW sont pris en charge, tout comme la
 compression JPEG avec perte.
  |
| Licence | 
 Aucune licence n'est requise (à l'exception de celles associées aux
 bibliothèques que vous pourriez utiliser) ; tous les brevets connus ont
 expiré.
  |

### WebP

Le WebP prend en charge la compression avec perte via un codage prédictif basé sur le codec vidéo VP8, et la compression sans perte qui utilise des substitutions pour la répétition des données. Les images WebP avec perte sont en moyenne 25 à 35 % plus petites que les images JPEG dont le niveau de compression est visuellement similaire. Les images WebP sans perte sont généralement 26 % plus petites que les mêmes images au format PNG.

WebP prend également en charge l'animation : dans un fichier WebP avec perte, les données d'image sont représentées par un flux binaire VP8, qui peut contenir plusieurs images. Le fichier WebP sans perte contient le fragment `ANIM`, qui décrit l'animation, et le fragment `ANMF`, qui représente une image d'une séquence d'animation. Le bouclage est pris en charge.

WebP bénéficie désormais d'un large soutien dans les dernières versions des principaux navigateurs web, bien qu'il ne bénéficie pas d'un soutien historique profond. Fournir une solution de repli au format JPEG ou PNG, par exemple avec l'élément `<picture>`.

|  |  |
| --- | --- |
| Type de MIME | `image/webp` |
| Extention(s) de fichier(s) | `.webp` |
| Spécification | 
Spécification des conteneurs RIFF
 (en)RFC 6386 - Format des données VP8 et guide de décodage
 (en) (encodage avec perte)Spécification du flux binaire sans perte WebP
 (en)
  |
| Compatibilité des navigateurs | 

| Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
| --- | --- | --- | --- | --- | --- | --- |
| Supprt de WebP avec perte | 17 | 18 | 65 | non | 11.10 (Presto)15 (Blink) | non |
| WebP sans perte | 2325 sur Android | 18 | 65 | non | 12.10 (Presto)15 (Blink) | non |
| Animation | 32 | 18 | 65 | non | 19 (Blink) | non |

 |
| Dimensions maximales | 16 383×16 383 pixels |
| Modes de couleur pris en charge | 
 WebP avec perte stocke l'image au format 8 bits Y'CbCr 4:2:0 (YUV420).
 WebP sans perte utilise la couleur ARGB 8 bits, chaque composant prenant
 8 bits pour un total de 32 bits par pixel.
  |
| Compression | 
 Sans perte (Huffman, LZ77, ou codes de cache couleur) ou avec perte
 (VP8).
  |
| Licence | Aucune licence n'est requise ; le code source est librement accessible. |

### XBM (X Window System Bitmap file)

Les fichiers XBM (X Bitmap) ont été les premiers à être pris en charge sur le Web, mais ils ne sont plus utilisés et doivent être évités, car leur format peut poser des problèmes de sécurité. Les navigateurs modernes n'ont pas pris en charge les fichiers XBM depuis de nombreuses années, mais lorsqu'il s'agit de contenus plus anciens, vous pouvez en trouver encore.

XBM utilise un extrait de code C pour représenter le contenu de l'image sous la forme d'un tableau d'octets. Chaque image se compose de 2 à 4 directives `#define`, fournissant la largeur et la hauteur de la carte de bits (et éventuellement le hotspot, si l'image est conçue comme un curseur), suivies d'un tableau de `unsigned char`, où chaque valeur contient 8 pixels monochromes de 1 bit.

L'image doit être un multiple de 8 pixels de large. Par exemple, le code suivant représente une image XBM de 8 pixels sur 8 pixels, ces pixels étant disposés en damier noir et blanc :


```cpp
#define square8\_width 8
#define square8\_height 8
static unsigned char square8_bits[] = {
  0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55
};
```


|  |  |
| --- | --- |
| Type de MIME | `image/xbm`, `image-xbitmap` |
| Extension(s) de fichier(s) | `.xbm` |
| Spécification | Aucune |
| Compatibilité des navigateurs | Firefox 1 à 3.5, Internet Explorer 1 à 5 |
| Dimensions maximales | Illimitée |
| Modes de couleur pris en charge | 

| Mode de couleur | Bits par composantes | Description |
| --- | --- | --- |
| Niveaux de gris | 1 | Chaque octet contient huit pixels de 1 bit. |
| Vraie couleur | *n/a* | *n/a* |
| Couleur indexée | *n/a* | *n/a* |
| Niveaux de gris avec alpha | *n/a* | *n/a* |
| Vraie couleur avec alpha | *n/a* | *n/a* |

 |
| Compression | Sans pertes |
| Licence | Open source |

Choisir un format d'image
-------------------------

Il est probablement plus facile de choisir le format d'image le mieux adapté à vos besoins que les formats vidéo, car il existe moins d'options bénéficiant d'un large soutien et chacune d'entre elles tend à avoir un ensemble spécifique de cas d'utilisation.

### Photographies

Les photographies se comportent généralement bien avec une compression avec perte (selon la configuration du codeur). Cela fait de JPEG et WebP de bons choix pour les photographies, le JPEG étant plus compatible mais le WebP offrant peut-être une meilleure compression. Pour maximiser la qualité et réduire le temps de téléchargement, envisagez de fournir à la fois une solution de repli avec WebP comme premier choix et JPEG comme second. Sinon, le JPEG est le choix le plus sûr pour la compatibilité.

| Meilleurs choix | Choix de secours |
| --- | --- |
| WebP et JPEG | JPEG |

### Icônes

Pour les images plus petites comme les icônes, utilisez un format sans perte pour éviter la perte de détails dans une image de taille limitée. Si le format WebP sans perte est idéal à cette fin, il n'est pas encore très répandu, de sorte que le format PNG est un meilleur choix, à moins que vous n'offriez une solution de repli. Si votre image contient moins de 256 couleurs, le GIF est une option, bien que le PNG comprime souvent encore plus petit avec son option de compression indexée (PNG-8).

Si l'icône peut être représentée par des graphiques vectoriels, il faut envisager SVG, puisqu'elle s'étend sur plusieurs résolutions et tailles, ce qui est parfait pour une conception réactive. Bien que la prise en charge du SVG soit bonne, il peut être utile de proposer un PNG de secours pour les navigateurs plus anciens.

| Meilleurs choix | Choix de secours |
| --- | --- |
| SVG, WebP sans perte, ou PNG | PNG |

### Captures d'écran

À moins que vous ne soyez prêt à faire des compromis sur la qualité, vous devriez utiliser un format sans perte pour les captures d'écran. C'est particulièrement important si votre capture d'écran contient du texte, car le texte devient facilement flou et peu clair sous une compression avec perte.

Le format PNG est probablement le plus adapté, mais le format WebP sans perte est sans doute mieux compressé.

| Meilleur choix | Choix de secours |
| --- | --- |
| WebP sans perte ou PNG ; JPEG si les artefacts de compression ne sont pas un problème | PNG ou JPEG ; GIF pour les captures d'écran à faible nombre de couleurs |

### Diagrammes, dessins et diagrammes

Pour toute image pouvant être représentée par des graphiques vectoriels, le SVG est le meilleur choix. Sinon, vous devez utiliser un format sans perte comme le PNG. Si vous choisissez un format avec perte, tel que JPEG ou WebP avec perte, pesez soigneusement le niveau de compression pour éviter que le texte ou d'autres formes ne deviennent flous ou imprécis.

| Meilleur choix | Choix de secours |
| --- | --- |
| SVG | PNG |

Fournir des solutions de repli en matière d'image
-------------------------------------------------

Alors que l'élément HTML standard `<img>` ne supporte pas les retours de compatibilité pour les images, l'élément `<picture>` le fait. `<picture>` est utilisé comme enveloppe pour un certain nombre d'éléments `<source>`, chacun spécifiant une version de l'image dans un format différent ou sous des conditions @media, ainsi qu'un élément `<img>` qui définit où afficher l'image et le retour à la version par défaut ou "la plus compatible".

Par exemple, si vous affichez un diagramme mieux affiché avec SVG, mais que vous souhaitez offrir une solution de rechange à un PNG ou GIF du diagramme, vous feriez quelque chose comme ceci :


```html
<picture>
  <source srcset="diagram.svg" type="image/svg+xml" />
  <source srcset="diagram.png" type="image/png" />
  <img
 src="diagram.gif"
 width="620"
 height="540"
 alt="Diagramme montrant les canaux de données" />
</picture>
```


Vous pouvez spécifier autant de `<source>`s que vous le souhaitez, bien qu'il vous suffise généralement de 2 ou 3.

Voir aussi
----------

* Guide des types et formats de médias
* Technologies media Web (en-US)
* Guide des codecs vidéo du Web (en-US)
* Les éléments HTML `<img>` et `<picture>`
* La propriété CSS `background-image`
* Le constructeur `Image()` (en-US) et l'interface `HTMLImageElement`