JPEG vs PNG vs BMP vs GIF vs SVG


40

J'aimerais savoir lequel de ces formats requiert le moins de mémoire pour une image de même qualité et quelles sont les principales différences entre ces formats.


15
Btw, JPG et JPEG se réfèrent tous deux à la même chose (voir par exemple en.wikipedia.org/wiki/JPEG ) afin que le titre puisse être un peu simplifié.
Jonik 10/10/2009

1
Vous ne savez pas comment ma réponse ne répond pas à votre question initiale et comment votre réponse choisie fait-elle ...? : - /
Django Reinhardt

4
> lequel de ces formats requiert moins de mémoire Euh, définissez «moins de mémoire». Voulez-vous dire qu'il prend moins d'espace disque? (JPEG pour les photos, PNG et / ou GIF pour les captures d'écran.) Voulez-vous dire que le fichier compressé prend moins d'espace en mémoire? (Identique à l'espace disque.) Voulez-vous dire que l'image décodée prend moins d'espace en mémoire ( Aucune ; elles sont toutes sensiblement identiques lorsque décodées en mode brut.)
Synetech

Réponses:


54

De Quelle est la différence entre les fichiers TIFF, GIF, JPG, JPEG, PNG et un fichier BMP?

BMP - Bitmap. C’était probablement le premier type de format d’image numérique dont je puisse me souvenir. Chaque image sur un ordinateur semblait être un fichier BMP. Sous Windows XP, le programme Paint enregistre automatiquement les images au format BMP. Cependant, sous Windows Vista et les versions ultérieures, les images sont maintenant enregistrées au format JPEG. BMP est la plate-forme de base de nombreux autres types de fichiers.

JPG / JPEG - (Groupe d'experts photographiques conjoints) Le format Jpeg est utilisé pour les photographies couleur, ou pour toutes les images comportant de nombreux mélanges ou dégradés. Il n’est pas bon avec des bords tranchants et a tendance à les brouiller un peu, sauf s’il est stocké avec une qualité élevée. Ce format est devenu populaire avec l'invention de l'appareil photo numérique. La plupart des appareils photo numériques, sinon tous, téléchargent des photos sur votre ordinateur au format Jpeg. De toute évidence, les fabricants d'appareils photo numériques reconnaissent la valeur des images de haute qualité qui occupent finalement moins de place.

GIF - (Graphics Interchange Format) Le format GIF est mieux utilisé pour le texte, les dessins au trait, les captures d'écran, les dessins animés et les animations. Gif étant limité à 256 couleurs au maximum, les images Gif sont donc relativement petites. Il est couramment utilisé pour le chargement rapide de pages Web. Il fait également une grande bannière ou un logo pour votre page Web. Les images animées peuvent également être enregistrées au format GIF en tant que séquence d'images statiques. Par exemple, une bannière clignotante serait enregistrée dans un fichier GIF.

PNG - (Portable Networks Graphic) Ce format sans perte est l’un des meilleurs formats d’image. Ce n’était pas toujours compatible avec tous les navigateurs Web ou logiciels d’image, mais il s’agit du meilleur format d’image pour les sites Web. J'utilise .png pour les logos et les captures d'écran. Une de ses capacités les plus étonnantes est de pouvoir compresser les images sans perte (sans perte de pixels), bien que la taille de compression finale varie entre les éditeurs d’images.

TIFF - (Format de fichier d'image marqué) Ce format de fichier n'a pas été mis à jour depuis 1992 et appartient maintenant à Adobe. Il peut stocker une image et des données (tags) dans un seul fichier. Le format TIFF peut être compressé, mais c’est plutôt sa capacité à stocker les données d’image dans un format sans perte qui en fait un fichier d’archive d’images très utile, car contrairement aux fichiers JPEG standard, un fichier TIFF utilisant la compression sans perte (ou aucun) peut - enregistré sans perte de qualité d'image. Ce fichier est couramment utilisé pour la numérisation, la télécopie, le traitement de texte, etc. Il n’est plus un format de fichier courant à utiliser avec vos photos numériques, car jpeg est d’une excellente qualité et prend moins d’espace.


1
Sachez que sans « hack » de toutes sortes, IE6 ne supporte toujours pas la transparence alpha dans les fichiers PNG domaines à savoir la transparence qui sont semi - opaque
Josh Comley

2
... et un nombre surprenant de personnes utilisent encore IE6 ( tinyurl.com/56kp ). Et MS veut le soutenir jusqu'en 2014! :( ( tinyurl.com/qvdyn5 )
Josh Comley

9
BMP: Ce n'est pas la base pour d'autres formats de fichiers. Autant que je sache, l'en-tête BMP et la structure de fichier ne sont pas partagés avec d'autres formats (contrairement au format TIFF, par exemple). JPEG: Il a été créé et existait sur le Web avant que les appareils photo numériques ne deviennent répandus. De plus, de nombreux appareils photo numériques permettent de sauvegarder un format "brut" qui est généralement un format TIFF, même si son contenu est spécifique au fournisseur. GIF: non limité à 256 couleurs par image, mais uniquement à 256 couleurs par image (voir en.wikipedia.org/wiki/Graphics_Interchange_Format#True_color ).
Joey

4
TIFF: format de fichier et de conteneur utilisé pour les images brutes provenant d'appareils photo numériques (celles qui ne le sont pas.). Le format TIFF autorise des données presque arbitraires (donc étiquetées ), ce qui signifie également qu'il prend en charge les méthodes de compression arbitraires de LZW (GIF), LZ77 (PNG) à JPEG et autres. De plus, le format TIFF permet de créer plusieurs images (pages) dans un seul fichier.
Joey

4
Alors que la réponse est bonne pour répondre à la différence des formats d'image en termes d'histoire et d'utilisation générale, la réponse initiale demandait aussi des tailles et de la qualité relatives ...
camster342

76

Dans le style xkcd de lbrandy.com :

texte alternatif


4
Illustre parfaitement le propos :) (même si je n’ai jamais vu personne préconiser une telle politique «Toujours JPEG!»)
Jonik

7
+1 Depuis que cette image illustre si bien le problème du format jpeg ...
Johan

5
Je souhaite pouvoir doubler votre vote! Je l'envoie à tous ceux qui m'envoient des jpegs merdiques!
Tim Büthe

3
© 2008 Louis Brandy. Tous les droits sont réservés....?
Arjan

3
Facebook a par exemple cette politique 'Toujours JPEG'. Je télécharge une belle image PNG sans perte de 99 Ko et Facebook la convertit en un fichier JPEG de 175 Ko.
Paul

63

Vous devez être conscient de quelques facteurs clés ...

Premièrement, il existe deux types de compression: Lossless et Lossy .

  • Sans perte signifie que l'image est réduite, mais sans nuire à la qualité.
  • Perte signifie que l'image est rendue (encore) plus petite, mais au détriment de la qualité. Si vous sauvegardiez une image au format Lossy à plusieurs reprises, la qualité de l’image empirerait progressivement.

Il existe également différentes profondeurs de couleur (palettes): Couleur indexée et Couleur directe .

  • Indexé signifie que l'image ne peut stocker qu'un nombre limité de couleurs (généralement 256), contrôlées par l'auteur, dans ce que l'on appelle une carte de couleurs.
  • Direct signifie que vous pouvez stocker plusieurs milliers de couleurs qui n'ont pas été directement choisies par l'auteur

BMP - sans perte / indexé et direct

C'est un vieux format. Il est sans perte (aucune donnée d'image n'est perdue lors de la sauvegarde), mais il y a également peu ou pas de compression, ce qui signifie que l'enregistrement en tant que BMP entraîne la création de TRES grandes tailles de fichiers. Il peut avoir des palettes d'indexé et direct, mais c'est une petite consolation. La taille des fichiers est tellement grande que personne n'utilise vraiment ce format.

Bon pour: rien vraiment. Il n'y a rien que BMP excelle, ou ne soit pas mieux fait par d'autres formats.

BMP vs GIF


GIF - sans perte / indexé seulement

Le format GIF utilise une compression sans perte, ce qui signifie que vous pouvez enregistrer l'image à plusieurs reprises et ne jamais perdre de données. La taille des fichiers est beaucoup plus petite que celle du format BMP, car une bonne compression est effectivement utilisée, mais il ne peut stocker qu'une palette indexée. Cela signifie que dans la plupart des cas d'utilisation , il ne peut y avoir qu'un maximum de 256 couleurs différentes dans le fichier. Cela semble être une petite somme, et ça l'est.

Les images GIF peuvent également être animées et transparentes.

Bon pour: Logos, dessins au trait et autres images simples qui doivent être petites. Seulement vraiment utilisé pour les sites Web.

GIF vs JPEG


JPEG - Perte / Direct

Les images JPEG ont été conçues pour produire des images photographiques détaillées aussi petites que possible en supprimant les informations que l'œil humain ne remarquera pas. En conséquence, il s'agit d'un format avec perte, et enregistrer le même fichier à plusieurs reprises entraînera la perte de plus de données au fil du temps. Elle offre une palette de milliers de couleurs et convient donc parfaitement aux photographies. Toutefois, la compression avec perte en est un inconvénient pour les logos et les dessins au trait: non seulement elles auront une apparence floue, mais elles auront également une taille de fichier supérieure à celle des GIF!

Bon pour: Photographies. En outre, les gradients.

JPEG vs GIF


PNG-8 - sans perte / indexé

PNG est un format plus récent et PNG-8 (la version indexée de PNG) est un bon substitut pour les fichiers GIF. Malheureusement, il présente toutefois quelques inconvénients: Premièrement, il ne peut pas prendre en charge une animation comme le GIF (eh bien, il le peut, mais seul Firefox semble le prendre en charge, contrairement à l’animation GIF qui est prise en charge par tous les navigateurs). Deuxièmement, il a des problèmes de support avec les anciens navigateurs comme IE6. Troisièmement, des logiciels importants comme Photoshop ont une mise en œuvre très médiocre du format. (Bon sang, Adobe!) Le format PNG-8 ne peut stocker que 256 couleurs, comme les GIF.

Bon pour: La principale chose pour laquelle PNG-8 fait mieux que les GIF est le support de la transparence alpha.

PNG-8 vs GIF

Remarque importante: Photoshop ne prend pas en charge la transparence alpha pour les fichiers PNG-8. (Bon sang, Photoshop!) Il existe des moyens de convertir Photoshop PNG-24 en fichiers PNG-8 tout en conservant leur transparence. Une méthode est PNGQuant , une autre consiste à enregistrer vos fichiers avec Fireworks .


PNG-24 - Lossless / Direct

PNG-24 est un excellent format qui associe un codage sans perte à une couleur directe (des milliers de couleurs, tout comme le format JPEG). Cela ressemble beaucoup à BMP à cet égard, sauf que PNG compresse réellement les images, ce qui donne des fichiers beaucoup plus petits. Malheureusement, les fichiers PNG-24 seront toujours beaucoup plus volumineux que les fichiers JPEG, GIF et PNG-8;

Même si les fichiers PNG-24 autorisent des milliers de couleurs avec compression, ils ne sont pas destinés à remplacer les images JPEG. Une photo enregistrée au format PNG-24 sera probablement au moins 5 fois plus grande qu'une image JPEG équivalente, avec une très légère amélioration de la qualité visible. (Bien entendu, cela peut être un résultat souhaitable si vous n'êtes pas préoccupé par la taille du fichier et souhaitez obtenir la meilleure qualité d'image possible.)

Tout comme PNG-8, PNG-24 prend également en charge la transparence alpha.


SVG - sans perte / vecteur

Le type de fichier qui gagne en popularité est SVG, ce qui diffère de tout ce qui précède en ce qu’il s’agit d’un format de fichier vectoriel (les fichiers ci-dessus sont tous raster ). Cela signifie qu'il est composé de lignes et de courbes au lieu de pixels. Lorsque vous zoomez sur une image vectorielle, vous voyez toujours une courbe ou une ligne. Lorsque vous zoomez sur une image raster, vous verrez des pixels.

Par exemple:

PNG vs SVG

SVG vs PNG

Cela signifie que SVG est parfait pour les logos et les icônes pour lesquels vous souhaitez conserver la netteté sur les écrans Retina ou de différentes tailles.

De plus, les fichiers SVG sont écrits en XML et peuvent donc être ouverts et édités dans un éditeur de texte afin de pouvoir être manipulés à la volée, si vous le souhaitez. Par exemple, vous pouvez utiliser JavaScript pour modifier la couleur d'une icône SVG sur un site Web, à la manière d'un texte (c'est-à-dire qu'il n'est pas nécessaire de disposer d'une seconde image).

J'espère que ça aide!


Bonne illustration. Faites attention aux artefacts causés par la compression. Je pense que les formats de compression vidéo JPEG, comme les formats de compression vidéo, posent le problème suivant: les zones rouges unies ont tendance à "fondre" sur les bords.
James P.

1
Vous vous trompez sur le fait que PNG ne prend pas en charge l'animation. PNG peut le faire très bien, la plupart des téléspectateurs et des navigateurs ne le prennent pas en charge. en.wikipedia.org/wiki/APNG Il semble que Firefox le supporte plutôt bien. people.mozilla.com/~dolske/apng/demo.html
Rob

1
@DjangoReinhardt Je sais que vous avez inclus un exemple dans votre réponse, mais en ce qui concerne les SVG vs PNG, dans quelles circonstances pourrions-nous voir un SVG plus gros (en taille de fichier) par rapport à un PNG?
Hanna

1
@ Johannes Grande question. SVG présente certains inconvénients, surtout s’ils sont particulièrement compliqués (ou mal sauvegardés - mais c’est la faute de l’auteur, pas le format du fichier). J'essaierai d'ajouter quelque chose qui répond à cela - bien que je soupçonne qu'un SVG sera toujours plus petit (ou de taille égale) qu'un PNG.
Django Reinhardt

1
Un autre fait amusant: les fichiers BMP ont une taille similaire à PNG si vous les compressez.
jiggunjer

28

Les réponses existantes incluent très peu de données techniques, je vais donc les inclure ici.

  • JPEG : couleurs jusqu'à 24 bits (éventuellement plus?), Compression variable (généralement élevée), avec perte, pas de support alpha
  • PNG : couleur jusqu’à 48 bits, compression modérée, sans perte, support alpha
  • BMP : couleur jusqu'à 24 bits, très peu de compression, sans perte, support alpha
  • GIF : couleur jusqu'à 8 bits, compression réduite, sans perte, prise en charge de la transparence, prise en charge de l'animation

La profondeur de la couleur

  • Couleur 8 bits = 256 couleurs
  • Couleur 24 bits == 16 777 216 couleurs
  • Couleur 48 bits == 281 474 976 710 656 couleurs

La plupart des moniteurs d’ordinateur fonctionnent à une profondeur de couleur de 24 bits. L'œil humain peut distinguer autant de couleurs. La profondeur de couleur supplémentaire consiste principalement à conserver les informations d'un capteur afin que la manipulation d'une photo permette d'utiliser plus de données. Essayer de représenter une photo en couleur 8 bits va donner du grain.

Compression

Cela concerne essentiellement la taille du fichier final. Plus de compression équivaut à un fichier plus petit. Cependant, JPEG permet d’atteindre des fichiers de petite taille en jetant les données. Cette compression est appelée compression "avec perte", car vous ne pouvez jamais récupérer les données non compressées d'origine. Sa compression est également optimisée pour les photographies où les contours très contrastés sont rares. Comme indiqué dans d'autres réponses, c'est un mauvais choix pour autre chose que des photographies.

Alpha / Transparence

Alpha se réfère à la transparence, mais cela implique qu'il y a plus d'un niveau de transparence. Le format GIF permet de définir des pixels transparents, mais il est soit opaque, soit 100% transparent, et "transparent" est utilisé comme l'une des 256 couleurs. Les formats PNG et BMP permettent de marquer chaque pixel comme opaque, transparent ou partiellement transparent, comme un morceau de verre coloré. Le plus souvent, il existe 256 niveaux de transparence, bien que le format PNG puisse en comporter jusqu'à 65 536. JPEG ne prend pas en charge la transparence.

Animation

Effectivement, parmi ces formats, seul le format GIF prend en charge l'animation. Il existe des spécifications pour l'animation avec PNG (MNG, APNG) et JPEG (MJPEG), mais elles ne sont pas largement prises en charge. (APNG fonctionne dans les versions récentes de Firefox et Opera.) En pratique, la plupart des animations que vous voyez sur les pages Web sont implémentées dans Flash.


APNG gagne beaucoup de soutien.
Phoshi

Assez sur. Je n'avais pas remarqué.
wfaulk 10/10/2009

Eh bien, la plupart des navigateurs modernes le supportent, mais il est peu connu. IE8 ne le supporte pas, je ne le pense pas (mais peut le lire en tant que PNG, affiche donc la première image)
Phoshi 10/10/2009

Un excellent traitement de la pensée ..
InfantPro'Aravind '17

25
  • Utilisez GIF si l’image a peu de couleurs (comme des icônes). Peut également être utilisé pour des images animées (comme des bannières publicitaires).
  • Utilisez JPG si l’image a beaucoup de couleurs (comme les photos). JPEG est la même chose.
  • Utilisez BMP si vous souhaitez enregistrer l'image sans compression. Beaucoup plus gros!
  • Utilisez PNG si vous souhaitez publier l'image sur le Web et être à jour avec les normes modernes. Avantages: Convient comme remplacement moderne pour les formats GIF et JPG. Il s'agit d'un standard ouvert qui permet la transparence. Inconvénients: non pris en charge par les logiciels plus anciens et la taille du fichier peut être supérieure à celle des fichiers GIF ou JPG comparables.

3
+1 pour des considérations pratiques sur le moment d'utiliser chacun.
Andrew Coleson

4
Faites attention à l’utilisation des PNG. En tant que format sans perte, ils ne sont généralement pas adaptés aux photographies et autres, en raison de la taille du fichier. Certainement pas un "remplacement moderne" à toutes fins utiles. Transcoder de JPG en PNG serait vraiment stupide.
Paul McMillan

@Paul - Je suis d'accord, ce n'est certainement pas utile à toutes fins et en particulier pas pour les photos, mais lorsqu'il est utilisé pour les graphismes Web, il remplace JPG.
Torben Gundtofte-Bruun

2
Je ne pense pas qu'il y ait un besoin de BPM aujourd'hui.
Arjan

1
Le format PNG est presque toujours plus petit que le format GIF. Il a un schéma de compression supérieur. Lorsqu'il est plus volumineux qu'un fichier GIF de même apparence, c'est généralement la faute d'un logiciel moche (par exemple, Photoshop avant CS2). Utilisez le format PNG avec palettes (et non 24 bits!) Et corrigez- les avec l'optimiseur PNG: imageoptim.pornel.net et vous ne voudrez plus jamais gaspiller de la bande passante sur les GIF.
Kornel

13

entrez la description de l'image ici


BMP:

  • Vieux format. Aucune perte de données.
  • Non compressé - Stocke la valeur de chaque pixel. Par conséquent, les images de mêmes dimensions ont la même taille de fichier (kilooctets / mégaoctets). Par exemple, les images 800 × 600 BMP sont toujours 1,37 Mio comme le papier peint populaire WinXP "Bliss".
  • Transparence / translucidité non prise en charge
  • Pas recommandé pour rien

JPG:

  • La compression avec perte.
  • Le montant de la perte peut être défini, par exemple lors de la création d’un graphique et de l’enregistrement dans Photoshop.
  • Enregistrer en qualité supérieure signifie moins de perte de couleurs / profondeur et une taille de fichier élevée, et inversement.
  • Transparence / translucidité non prise en charge
  • Recommandé pour les photographies, pas pour les graphiques / icônes

PNG:

  • Compression sans perte (oui, le meilleur des deux mots / mondes)
  • Prend en charge la transparence ET la translucidité, les deux sont différents
  • Recommandé pour les graphiques / icônes statiques, pas pour les photographies

GIF:

  • Prend en charge la transparence mais pas la transparence
  • Recommandé pour les graphiques / icônes ANIMATED uniquement
  • Peut-être que les photographies en mouvement dans les cadres de Harry Potter sont des GIF: D

1
Belle vue d'ensemble. Mais pourquoi BMP est-il marqué "sans perte: faux" dans le tableau? Dans le texte, vous déclarez correctement, à mon humble avis, que BMP est effectivement sans perte .
mpy

2
Je sais que ce fil est ancien et je vous remercie pour votre réponse, mais notez que BMP est éventuellement compressé avec une compression RLE très simpliste et sans perte.
Ysap

Toute autre raison pour laquelle le format PNG n'est PAS recommandé pour les photographies, mis à part sa taille de fichier supérieure à celle du format JPEG? J'ai d'abord numérisé mes anciennes photos au format JPEG, puis les ai de nouveau numérisées au format PNG après avoir réalisé que je numérisais une photo qui serait stockée dans un format avec perte.
JAT86

4

BMP utilise des bits bruts avec un petit en-tête ou un codage à la longueur d'exécution . JPEG utilise la transformation en cosinus discrète . Voir le bloc au bas des articles de Wikipedia pour d'autres algorithmes de compression / encodage.


Moi aime le PCX. Il y a bien longtemps, lorsque j'ai décidé d'apprendre l'assembleur, pour mon premier programme, j'ai écrit un visualiseur PCX. C'était assez éducatif. (Je n'ai pas écrit de visionneur JPG). :-D
Synetech

3

Simple guid:

  • Pour les photographies, utilisez:
    • Formats bruts spécifiques à l'appareil photo si vous disposez d'un équipement professionnel et souhaitez effectuer beaucoup de post-traitement
    • JPEG autrement (pour publier des photos sur le Web, vous devrez également convertir les formats bruts au format JPEG)
  • Pour tout ce qui a des arêtes vives, des lignes fines et peu de couleurs (comme des captures d'écran ou des logos), utilisez:
    • GIF si vous créez une page Web qui doit prendre en charge de très vieux navigateurs (principalement IE 6) ou si vous souhaitez réaliser des animations simples
    • PNG autrement
  • Il n'y a pas de bonne raison d'utiliser BMP, à moins qu'un programme spécifique n'accepte pas d'autres formats.

1
IE supporte le PNG depuis certaines versions 4.x (5 sur Mac), mais pas le PNG transparent.
Arjan

1
En réalité, IE6 prend même en charge le format PNG transparent s’il présente une transparence de type GIF. Seul le format PNG avec alpha complet n'est pas pris en charge.
Kornel

1
En réalité, la transparence Alpha est prise en charge, à condition qu'il s'agisse d'un fichier PNG 8 bits. Bizarre, mais vrai.
Django Reinhardt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.