Portable pixmap

Un article de Wikipédia, l'encyclopédie libre.
Aller à : Navigation, rechercher
Portable pixmap
Extension .ppm, .pgm, .pbm, .pnm
Type MIME image/x-portable-pixmap, -graymap, -bitmap, -anymap all unofficial
Développé par Jef Poskanzer
Type de format Format de fichier graphique
Origine de XPM

Le portable pixmap file format (PPM), le portable graymap file format (PGM) et le portable bitmap file format (PBM) sont des formats de fichier graphique utilisés pour les échanges. Ils ont été définis et sont utilisés par le projet NetPBM. Ils proposent des fonctionnalités très basiques et sont utilisés pour convertir les fichiers de type pixmap, graymap et bitmap entre différentes plates-formes. Plusieurs applications désignent cet ensemble de trois formats comme le format PNM (portable anymap).

Sommaire

[modifier] Histoire

Le format PBM a été défini par Jef Poskanzer dans les années 1980 comme un format d'images bitmaps monochromes pouvant être transmise via un message électronique en texte ASCII, et leurs permettant de supporter tout changement dans le formatage du texte.

La première bibliothèque d'outils pour gérer le format PBM a été Pbmplus. Elle a été développée par le créateur du format et est sortie en 1988. Elle contenait essentiellement des outils pour convertir les fichiers PBM dans d'autres formats graphiques. À la fin de 1988, Jef Poskanzer avait développé les formats PGM et PPM avec leurs outils associés et les a ajoutés à Pbmplus. La dernière version de Pbmplus date du 10 décembre 1991.

En 1993, la bibliothèque NetPBM a été développé pour remplacer Pbmplus, plus maintenu. Il s'agissait alors simplement d'une reformulation de la Pbmplus, avec les ajouts et correctifs soumis par la communauté.


[modifier] PBM

Ce format de fichier est utilisé pour des images noir et blanc. Il existe deux variantes : binaire ou brut.

[modifier] Fichier binaire

Un fichier pbm binaire se compose comme suit :

  • Un nombre magique (P4)
  • Un caractère d'espacement (espace, tabulation, nouvelle ligne)
  • Largeur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • Hauteur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • Données binaires de l'image :
    • L'image est codée ligne par ligne en partant du haut
    • Chaque ligne est codée de gauche à droite
    • Un pixel noir est codé par un bit 1 et un pixel blanc est codé par un bit 0
    • Les bits sont regroupés par 8 pour former un octet, les bits excédentaires à la fin d'une ligne sont ignorés
  • Un zéro final

Toutes les lignes commençant par # sont ignorées.

[modifier] Fichier ASCII

Un fichier pbm ASCII se compose comme suit :

  • Un nombre magique (P1)
  • Un caractère d'espacement (espace, tabulation, nouvelle ligne)
  • Largeur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • Hauteur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • Données ASCII de l'image :
    • L'image est codée ligne par ligne en partant du haut
    • Chaque ligne est codée de gauche à droite
    • Un pixel noir est codé par un caractère 1, un pixel blanc est codé par un caractère 0
    • Les caractères d'espacement à l'intérieur de cette section sont ignorés
    • Aucune ligne ne doit dépasser 70 caractères.
  • un zéro final.

Toutes les lignes commençant par # sont ignorées.

[modifier] Exemple

P1
# This is an example bitmap of the letter "J"
6 10
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 0 0 0 1 0
0 1 1 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0

[modifier] PGM

Ce format de fichier est utilisé pour des images en niveau de gris. Il existe deux variantes : binaire ou brut.

[modifier] Fichier binaire

Un fichier pgm binaire se compose comme suit :

  • Un nombre magique (P5)
  • Un caractère d'espacement (espace, tabulation, nouvelle ligne)
  • Largeur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • Hauteur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • La valeur maximale utilisée pour coder les niveaux de gris, cette valeur doit être inférieure à 65536 (codée en caractères ASCII)
  • Un caractère d'espacement
  • Données binaires de l'image :
    • L'image est codée ligne par ligne en partant du haut
    • Chaque ligne est codée de gauche à droite
    • Chaque pixel est codé par 1 ou 2 bytes selon que la valeur maximale est inférieure ou supérieure à 256. Un pixel noir est codé par la valeur 0, un pixel blanc est codé par la valeur maximale et chaque niveau de gris est codé par une valeur entre ces deux extrêmes, proportionnellement à son intensité.

Toutes les lignes commençant par # sont ignorées.

[modifier] Fichier ASCII

Un fichier pgm ASCII se compose comme suit :

  • Un nombre magique (P2)
  • Un caractère d'espacement (espace, tabulation, nouvelle ligne)
  • Largeur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • Hauteur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • La valeur maximale utilisée pour coder les niveaux de gris, cette valeur doit être inférieure à 65536 (codée en caractères ASCII)
  • Un caractère d'espacement
  • Données ASCII de l'image :
    • L'image est codée ligne par ligne en partant du haut
    • Chaque ligne est codée de gauche à droite
    • Chaque pixel est codé par une valeur en caractères ASCII, précédée et suivie par un caractère d'espacement. Un pixel noir est codé par la valeur 0, un pixel blanc est codé par la valeur maximale et chaque niveau de gris est codé par une valeur entre ces deux extrêmes, proportionnellement à son intensité.
    • Aucune ligne ne doit dépasser 70 caractères.

Toutes les lignes commençant par # sont ignorées.

[modifier] Exemple

P2
# Shows the word "FEEP" (example from Netpbm main page on PGM)
24 7
15
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Résultat:

Feep netbpm p2 pgm example.png

[modifier] PPM

Ce format de fichier est utilisé pour des images couleur. Il existe deux variantes : binaire ou brut.

[modifier] Fichier binaire

Un fichier ppm binaire se compose comme suit :

  • Un nombre magique (P6)
  • Un caractère d'espacement (espace, tabulation, nouvelle ligne)
  • Largeur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • Hauteur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • La valeur maximale utilisée pour coder les niveaux de gris, cette valeur doit être inférieure à 65536 (codée en caractères ASCII)
  • Un caractère d'espacement
  • Données binaires de l'image :
    • L'image est codée ligne par ligne en partant du haut
    • Chaque ligne est codée de gauche à droite
    • Chaque pixel est codé par 3 valeurs (rouge vert bleu) sur 1 ou 2 bytes selon que la valeur maximale est inférieure ou supérieure à 256.

Toutes les lignes commençant par # sont ignorées.

[modifier] Fichier ASCII

Un fichier ppm ASCII se compose comme suit :

  • Un nombre magique (P3)
  • Un caractère d'espacement (espace, tabulation, nouvelle ligne)
  • Largeur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • Hauteur de l'image (codée en caractères ASCII)
  • Un caractère d'espacement
  • La valeur maximale utilisée pour coder les couleurs, cette valeur doit être inférieure à 65536 (codée en caractères ASCII)
  • Un caractère d'espacement
  • Données ASCII de l'image :
    • L'image est codée ligne par ligne en partant du haut
    • Chaque ligne est codée de gauche à droite
    • Chaque pixel est codé par trois valeurs (rouge vert bleu) en caractères ASCII, précédées et suivies par un caractère d'espacement.
    • Aucune ligne ne doit dépasser 70 caractères.

Toutes les lignes commençant par # sont ignorées.

[modifier] Exemple

P3
# The P3 means colors are in ASCII, then 3 columns and 2 rows,
# then 255 for max color, then RGB triplets
3 2
255
255   0   0     0 255   0     0   0 255
255 255   0   255 255 255     0   0   0

Résultat:

Tiny6pixel.png

[modifier] Voir aussi

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Contribuer
Imprimer / exporter
Boîte à outils
Autres langues